Python 3 - ประเภทตัวแปร
ตัวแปรเป็นเพียงตำแหน่งหน่วยความจำที่สงวนไว้เพื่อเก็บค่า หมายความว่าเมื่อคุณสร้างตัวแปรคุณจะสงวนพื้นที่ในหน่วยความจำไว้
ตามชนิดข้อมูลของตัวแปรล่ามจะจัดสรรหน่วยความจำและตัดสินใจว่าจะจัดเก็บอะไรในหน่วยความจำที่สงวนไว้ ดังนั้นโดยการกำหนดประเภทข้อมูลที่แตกต่างกันให้กับตัวแปรคุณสามารถจัดเก็บจำนวนเต็มทศนิยมหรืออักขระในตัวแปรเหล่านี้ได้
การกำหนดค่าให้กับตัวแปร
ตัวแปร Python ไม่จำเป็นต้องมีการประกาศอย่างชัดเจนเพื่อสงวนพื้นที่หน่วยความจำ การประกาศจะเกิดขึ้นโดยอัตโนมัติเมื่อคุณกำหนดค่าให้กับตัวแปร เครื่องหมายเท่ากับ (=) ใช้เพื่อกำหนดค่าให้กับตัวแปร
ตัวถูกดำเนินการทางด้านซ้ายของตัวดำเนินการ = คือชื่อของตัวแปรและตัวถูกดำเนินการทางด้านขวาของตัวดำเนินการ = คือค่าที่เก็บไว้ในตัวแปร ตัวอย่างเช่น -
#!/usr/bin/python3
counter = 100 # An integer assignment
miles = 1000.0 # A floating point
name = "John" # A string
print (counter)
print (miles)
print (name)
ในที่นี้ 100, 1000.0 และ "John" คือค่าที่กำหนดให้กับตัวแปรตัวนับไมล์และชื่อตามลำดับ สิ่งนี้ก่อให้เกิดผลลัพธ์ดังต่อไปนี้ -
100
1000.0
John
การมอบหมายงานหลายรายการ
Python ช่วยให้คุณกำหนดค่าเดียวให้กับตัวแปรหลายตัวพร้อมกัน
ตัวอย่างเช่น -
a = b = c = 1
ที่นี่อ็อบเจ็กต์จำนวนเต็มถูกสร้างขึ้นด้วยค่า 1 และตัวแปรทั้งสามถูกกำหนดให้กับตำแหน่งหน่วยความจำเดียวกัน คุณยังสามารถกำหนดหลายออบเจ็กต์ให้กับตัวแปรหลายตัว ตัวอย่างเช่น -
a, b, c = 1, 2, "john"
ที่นี่วัตถุจำนวนเต็มสองชิ้นที่มีค่า 1 และ 2 ถูกกำหนดให้กับตัวแปร a และ b ตามลำดับและวัตถุสตริงหนึ่งรายการที่มีค่า "john" จะถูกกำหนดให้กับตัวแปร c
ประเภทข้อมูลมาตรฐาน
ข้อมูลที่จัดเก็บในหน่วยความจำสามารถมีได้หลายประเภท ตัวอย่างเช่นอายุของบุคคลจะถูกจัดเก็บเป็นค่าตัวเลขและที่อยู่ของบุคคลนั้นจะถูกจัดเก็บเป็นอักขระที่เป็นตัวเลขและตัวอักษร Python มีประเภทข้อมูลมาตรฐานต่างๆที่ใช้ในการกำหนดการดำเนินการที่เป็นไปได้และวิธีการจัดเก็บสำหรับแต่ละประเภท
Python มีข้อมูลมาตรฐานห้าประเภท -
- Numbers
- String
- List
- Tuple
- Dictionary
Python Numbers
ชนิดข้อมูลตัวเลขเก็บค่าตัวเลข วัตถุตัวเลขถูกสร้างขึ้นเมื่อคุณกำหนดค่าให้กับวัตถุเหล่านั้น ตัวอย่างเช่น -
var1 = 1
var2 = 10
คุณยังสามารถลบการอ้างอิงไปยังออบเจ็กต์ตัวเลขโดยใช้ไฟล์ delคำให้การ. ไวยากรณ์ของdel คำสั่งคือ -
del var1[,var2[,var3[....,varN]]]]
คุณสามารถลบวัตถุเดียวหรือหลายวัตถุได้โดยใช้ไฟล์ del คำให้การ.
ตัวอย่างเช่น -
del var
del var_a, var_b
Python รองรับตัวเลขสามประเภทที่แตกต่างกัน -
- int (จำนวนเต็มลงนาม)
- ลอย (ค่าจริงจุดลอยตัว)
- ซับซ้อน (จำนวนเชิงซ้อน)
จำนวนเต็มทั้งหมดใน Python3 แสดงเป็นจำนวนเต็มยาว ดังนั้นจึงไม่มีประเภทตัวเลขแยกจากกันตราบเท่าที่
ตัวอย่าง
นี่คือตัวอย่างของตัวเลข -
int | ลอย | ซับซ้อน |
---|---|---|
10 | 0.0 | 3.14j |
100 | 15.20 น | 45.j |
-786 | -21.9 | 9.322e-36j |
080 | 32.3 + จ 18 | .876j |
-0490 | -90. | -.6545 + 0J |
-0x260 | -32.54e100 | 3e + 26J |
0x69 | 70.2-E12 | 4.53e-7j |
จำนวนเชิงซ้อนประกอบด้วยคู่ลำดับของจำนวนทศนิยมจริงที่แสดงด้วย x + yj โดยที่ x และ y เป็นจำนวนจริงและ j คือหน่วยจินตภาพ
Python Strings
สตริงใน Python ถูกระบุว่าเป็นชุดอักขระที่ต่อเนื่องกันซึ่งแสดงในเครื่องหมายคำพูด Python อนุญาตให้มีอัญประกาศคู่เดียวหรือคู่ ชุดย่อยของสตริงสามารถนำมาใช้โดยใช้ตัวดำเนินการ slice ([] และ [:]) โดยมีดัชนีเริ่มต้นที่ 0 ในจุดเริ่มต้นของสตริงและดำเนินการตั้งแต่ -1 ถึงจุดสิ้นสุด
เครื่องหมายบวก (+) คือตัวดำเนินการต่อสายอักขระและเครื่องหมายดอกจัน (*) เป็นตัวดำเนินการซ้ำ ตัวอย่างเช่น -
#!/usr/bin/python3
str = 'Hello World!'
print (str) # Prints complete string
print (str[0]) # Prints first character of the string
print (str[2:5]) # Prints characters starting from 3rd to 5th
print (str[2:]) # Prints string starting from 3rd character
print (str * 2) # Prints string two times
print (str + "TEST") # Prints concatenated string
สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -
Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST
รายการ Python
รายการเป็นประเภทข้อมูลผสมของ Python ที่หลากหลายที่สุด รายการประกอบด้วยรายการที่คั่นด้วยลูกน้ำและอยู่ในวงเล็บเหลี่ยม ([]) ในระดับหนึ่งรายการจะคล้ายกับอาร์เรย์ใน C ความแตกต่างอย่างหนึ่งคือรายการทั้งหมดที่อยู่ในรายการอาจเป็นประเภทข้อมูลที่แตกต่างกัน
ค่าที่เก็บไว้ในรายการสามารถเข้าถึงได้โดยใช้ตัวดำเนินการ slice ([] และ [:]) โดยมีดัชนีเริ่มต้นที่ 0 ในตอนต้นของรายการและดำเนินการตามจุดสิ้นสุด -1 เครื่องหมายบวก (+) คือตัวดำเนินการต่อรายการและเครื่องหมายดอกจัน (*) เป็นตัวดำเนินการการทำซ้ำ ตัวอย่างเช่น -
#!/usr/bin/python3
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
print (list) # Prints complete list
print (list[0]) # Prints first element of the list
print (list[1:3]) # Prints elements starting from 2nd till 3rd
print (list[2:]) # Prints elements starting from 3rd element
print (tinylist * 2) # Prints list two times
print (list + tinylist) # Prints concatenated lists
สิ่งนี้ก่อให้เกิดผลลัพธ์ดังต่อไปนี้ -
['abcd', 786, 2.23, 'john', 70.200000000000003]
abcd
[786, 2.23]
[2.23, 'john', 70.200000000000003]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john']
Python Tuples
ทูเปิลเป็นประเภทข้อมูลลำดับอื่นที่คล้ายกับรายการ ทูเพิลประกอบด้วยค่าจำนวนหนึ่งโดยคั่นด้วยเครื่องหมายจุลภาค สิ่งที่แตกต่างจากรายการคือ tuples จะอยู่ในวงเล็บ
ความแตกต่างที่สำคัญระหว่างลิสต์และทูเพิลคือ - ลิสต์อยู่ในวงเล็บ ([]) และองค์ประกอบและขนาดสามารถเปลี่ยนแปลงได้ในขณะที่ทูเพิลอยู่ในวงเล็บ (()) และไม่สามารถอัพเดตได้ Tuples สามารถคิดได้ว่าread-onlyรายการ ตัวอย่างเช่น -
#!/usr/bin/python3
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
print (tuple) # Prints complete tuple
print (tuple[0]) # Prints first element of the tuple
print (tuple[1:3]) # Prints elements starting from 2nd till 3rd
print (tuple[2:]) # Prints elements starting from 3rd element
print (tinytuple * 2) # Prints tuple two times
print (tuple + tinytuple) # Prints concatenated tuple
สิ่งนี้ก่อให้เกิดผลลัพธ์ดังต่อไปนี้ -
('abcd', 786, 2.23, 'john', 70.200000000000003)
abcd
(786, 2.23)
(2.23, 'john', 70.200000000000003)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john')
รหัสต่อไปนี้ไม่ถูกต้องกับทูเปิลเนื่องจากเราพยายามอัปเดตทูเพิลซึ่งไม่ได้รับอนุญาต กรณีที่คล้ายกันเป็นไปได้กับรายการ -
#!/usr/bin/python3
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tuple[2] = 1000 # Invalid syntax with tuple
list[2] = 1000 # Valid syntax with list
พจนานุกรม Python
พจนานุกรมของ Python เป็นประเภทของตารางแฮช ทำงานเหมือนอาร์เรย์หรือแฮชที่เชื่อมโยงกันที่พบใน Perl และประกอบด้วยคู่คีย์ - ค่า คีย์พจนานุกรมสามารถเป็น Python ได้เกือบทุกประเภท แต่โดยปกติจะเป็นตัวเลขหรือสตริง ในทางกลับกันค่าอาจเป็นวัตถุ Python ใด ๆ ก็ได้
พจนานุกรมอยู่ในวงเล็บปีกกา ({}) และสามารถกำหนดและเข้าถึงค่าได้โดยใช้วงเล็บปีกกา ([]) ตัวอย่างเช่น -
#!/usr/bin/python3
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
print (dict['one']) # Prints value for 'one' key
print (dict[2]) # Prints value for 2 key
print (tinydict) # Prints complete dictionary
print (tinydict.keys()) # Prints all the keys
print (tinydict.values()) # Prints all the values
สิ่งนี้ก่อให้เกิดผลลัพธ์ดังต่อไปนี้ -
This is one
This is two
{'name': 'john', 'dept': 'sales', 'code': 6734}
dict_keys(['name', 'dept', 'code'])
dict_values(['john', 'sales', 6734])
พจนานุกรมไม่มีแนวคิดเรื่องลำดับระหว่างองค์ประกอบ มันไม่ถูกต้องที่จะบอกว่าองค์ประกอบนั้น "ไม่เป็นระเบียบ"; ไม่เรียงลำดับ
การแปลงประเภทข้อมูล
บางครั้งคุณอาจต้องทำการแปลงระหว่างประเภทที่มีอยู่แล้วภายใน ในการแปลงระหว่างประเภทคุณเพียงแค่ใช้ชื่อประเภทเป็นฟังก์ชัน
มีฟังก์ชันในตัวหลายอย่างเพื่อทำการแปลงจากประเภทข้อมูลหนึ่งไปยังอีกประเภทหนึ่ง ฟังก์ชันเหล่านี้ส่งคืนอ็อบเจ็กต์ใหม่ที่แทนค่าที่แปลงแล้ว
ซีเนียร์ | ฟังก์ชั่นและคำอธิบาย |
---|---|
1 | int(x [,base]) แปลง x เป็นจำนวนเต็ม ฐานระบุฐานถ้า x เป็นสตริง |
2 | float(x) แปลง x เป็นเลขทศนิยม |
3 | complex(real [,imag]) สร้างจำนวนเชิงซ้อน |
4 | str(x) แปลงวัตถุ x เป็นการแสดงสตริง |
5 | repr(x) แปลงวัตถุ x เป็นสตริงนิพจน์ |
6 | eval(str) ประเมินสตริงและส่งคืนอ็อบเจ็กต์ |
7 | tuple(s) แปลง s เป็นทูเปิล |
8 | list(s) แปลงเป็นรายการ |
9 | set(s) แปลง s เป็นชุด |
10 | dict(d) สร้างพจนานุกรม d ต้องเป็นลำดับของสิ่งที่ได้ (คีย์ค่า) |
11 | frozenset(s) แปลง s เป็นเซ็ตแช่แข็ง |
12 | chr(x) แปลงจำนวนเต็มเป็นอักขระ |
13 | unichr(x) แปลงจำนวนเต็มเป็นอักขระ Unicode |
14 | ord(x) แปลงอักขระเดี่ยวเป็นค่าจำนวนเต็ม |
15 | hex(x) แปลงจำนวนเต็มเป็นสตริงเลขฐานสิบหก |
16 | oct(x) แปลงจำนวนเต็มเป็นสตริงฐานแปด |