ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

ตอบกระทู้


คำถามนี้ เพื่อป้องกันการส่งแบบอัตโนมัติจากสแปมบอท
รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[flash] ปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

Re: ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

โพสต์ โดย ธวัชชัย แสนหาญ » 16/11/2018 6:02 pm

การใช้ตัวแปรชนิด tuple ใน python
Tuple เป็นตัวแปรชนิดหนึ่งที่สามารถเก็บค่าได้หลายค่าใน1 ตัวแปร
เหมือนกับ list แต่ไม่สามารถ เพิ่ม และ ลบค่าได้
แต่ละค่าหรือสามชิกแต่ละตัวจะต้องอยู่ใน (...)

รูปที่ run ในโปรแกรม
51.png
51.png (29.49 KiB) เปิดดู 614 ครั้ง


โค้ดที่จะนำมาrun

โค้ด: เลือกทั้งหมด

Tuple1 =('in','out',1,2)
Tuple2 =(10,20,30,40)

print (Tuple1)        #แสดงคาใน Tuple1 ทั้งหมด
print (Tuple1[1])     #แสดงคาใน Tuple1 ใน index ที่1
print (Tuple2)        #แสดงคาใน Tuple2 ทั้งหมด
print (Tuple2[-1])    #แสดงคาใน Tuple2 -1คือ นับจากข้างหลังลงมา 1 ค่า

ผลลัพธ์ที่ได้
51.png
51.png (29.49 KiB) เปิดดู 614 ครั้ง
แนบไฟล์
52.png
52.png (12.81 KiB) เปิดดู 614 ครั้ง

Re: ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

โพสต์ โดย anuwat somsakul » 10/08/2018 3:57 pm

ขอบเขตของตัวแปล ใน การสร้างฟังก์ชั่น Scope of Variables

โค้ด: เลือกทั้งหมด


total 
= 0
def mysum
(arg1,arg2,arg3):
    total = arg1 + arg2 + arg3 #ตัวแปร local
    print("แสดงค่าของตัวแปรที่เป็นlocal",total)
    return  total

#ชื่อตัวแปรglobalซ้ำ
total = 30
mysum
(10,20,30)
print(
"แสดงค่าของตัวแปรที่เป็นglobal",total)


ผลลัพธ์
Selection_013.png
Selection_013.png (12.58 KiB) เปิดดู 664 ครั้ง


ศึกษาจาก : https://www.youtube.com/watch?v=9KP4C9g3ys8&index=21&list=PLLi1ciqQAf8TVFbJpl7XY23lzdKrpxsMM

Re: ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

โพสต์ โดย prakon » 06/07/2018 3:52 pm

ตัวแปร global ในฟังก์ชั่นจะทำให้ ตัวแปรนั้น ค่าเดียวกันทั้งในและนอกฟังก์ชั่น
แต่ตัวแปร local ใช้ได้เพียงในฟังก์ชั่น

โค้ดตัวอย่างกรณี ตัวแปร global

โค้ด: เลือกทั้งหมด

import time
a=0
def count():
    global a
    a+=1
    print(a)
while 1:
    count()
    time.sleep(1)


จะเห็นได้ว่าตัวแปร

Re: ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

โพสต์ โดย rangsan » 03/05/2018 1:55 pm

ขอบเขตของตัวแปรฟังก์ชัน

โค้ด: เลือกทั้งหมด

total = 0
def mySum(arg1,arg2,arg3):
    total1 = arg1+arg2+arg3
    total2 = arg1*arg2-arg3
    total = total1+total2
    print 'Value Total in Local  : ',total
    return total

total = 20
mySum(2,3,4)
print '--------------------------'
print 'Value Total in Global : ',total


ผลลัพธ์การรันโค้ด
ขอบเขตของตัวแปรฟังก์ชัน.png
ขอบเขตของตัวแปรฟังก์ชัน.png (17.62 KiB) เปิดดู 689 ครั้ง


จะเห้นได้ว่าตัวแปรของ total ในแบบ Local และ total ในแบบ Global นั้นมีค่าที่ต่างกันถึงแม้ว่าจะมีการ return ค่าออกมาแต่เราไม่ได้เอาค่านั้นมาทำงานต่อแต่อย่างใดค่า total ในแบบ Global จึงมีค่าเท่ากับ 20 เพราะมีการประกาศค่าซ้ำอีกครั้ง

ศึกษาจาก : https://www.youtube.com/watch?v=9KP4C9g3ys8

Re: ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

โพสต์ โดย Patcharanan.0399 » 21/04/2018 11:30 am

โค้ด: เลือกทั้งหมด

total = 0
def mysum(arg1, arg2, arg3):
    total = arg1 + arg2 + arg3
    print 'Local is : ', total
    return total

mysum(15, 25, 35)
print 'Globle is : ', total

ผลการรัน
Global.JPG
ตัวแปรมีค่าไม่เท่ากัน แม้ว่าจะเป็นชื่อเดียวกัน เพราะเรื่องขอบเขตของตัวแปร Global กับ Local
Global.JPG (10.65 KiB) เปิดดู 711 ครั้ง


โค้ด: เลือกทั้งหมด

total = 0
def mysum(arg1, arg2, arg3):
    total = arg1 + arg2 + arg3
    print 'Local is : ', total
    return total

total = 30
mysum(15, 25, 35)
print 'Globle is : ', total

ผลการรัน
Global1.JPG
เมื่อมีชื่อตัวแปร Global ซ้ำ จะเท่ากับค่าที่กำหนดไว้ล่าสุด
Global1.JPG (11.08 KiB) เปิดดู 711 ครั้ง



ศึกษาจาก https://youtu.be/9KP4C9g3ys8

Re: ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

โพสต์ โดย Jom07 » 25/01/2018 1:13 am

โค้ด: เลือกทั้งหมด

total = 0
def test(a,b,c):
    total = a + b + c
    print('แสดงผลรัน local = ', total)
    return total

total = 30
test(10,20,30)
print('แสดงผล global =',total)


ผลรัน

รูปภาพ

Re: ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

โพสต์ โดย Four » 23/01/2018 4:32 pm

โค้ด: เลือกทั้งหมด

def func():
    a = 1
    b = 2
    print("local A", a)
    print("local B", b)

a = 10
b = 20
print("local A", a)
print("local B", b)
func()
print("local A", a)
print("local B", b)


ผลรัน

รูปภาพ

Re: ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

โพสต์ โดย Dive Demo » 03/02/2017 5:11 pm

ในหัวข้อนี้คือต้องตระหนักถึงตำแหน่งของ ตัวแปร Global และ Local เป็นสำคัญเพราะมีผลในการประมวลผลของระบบ

ข้างบน