Python
ตัวแปรและชนิดข้อมูล
ตัวแปร
ตัวแปร (Variable) ในโปรแกรมคอมพิวเตอร์เป็นชื่อที่ใช้ในการอ้างถึงตำแหน่งหน่วยความจำเพื่อการจัดเก็บข้อมูลนั้น รวมถึงการดำเนินการต่างๆ กับข้อมูลโดยผ่านการอ้างถึงโดยชื่อของตัวแปร (ซึ่งก็คือการระบุตำแหน่งของหน่วยความจำ) ที่กำหนด ตัวแปรในภาษาไพธอนมีลักษณะพิเศษที่แตกต่างจากตัวแปรในภาษาคอมพิวเตอร์ระดับสูงอื่นๆ โดยในภาษาอื่นๆ นั้นเมื่อมีการใช้งานตัวแปร จะต้องมีการประกาศชนิดข้อมูลของตัวแปรนั้นก่อน จึงจะสามารถใช้งานได้ นั่นคือเมื่อมีการกำหนดชนิดข้อมูลให้กับตัวแปรแล้ว จะใช้ตัวแปรนั้นเพื่อเก็บชนิดข้อมูลแบบอื่นๆ ไม่ได้ แต่สำหรับในภาษาไพธอนนั้นไม่จำเป็นต้องมีการประกาศชนิดข้อมูลของตัวแปร การกำหนดชนิดข้อมูลสามารถทำได้โดยตรงโดยผ่านคำสั่งการกำหนดค่า เช่น
>>>total = 50
ซึ่งเป็นการกำหนดชื่อตัวแปร total โดยมีชนิดข้อมูลเป็นจำนวนเต็ม และมีค่าของข้อมูลมีค่าเป็น 50 เป็นต้น นอกจากนี้ยังสามารถเปลี่ยนชนิดของข้อมูลที่กำหนดไว้แล้วได้ตามคุณสมบัติของข้อมูลที่กำลังประมวลผล เช่น
>>>total = 50
>>>print(total)
>>>total = total + 3.5
>>>print(total)
>>>53.5
จากตัวอย่างคำสั่งข้างต้นจะเห็นว่าเมื่อเริ่มต้นการทำงาน ตัวแปร total ได้รับการกำหนดเป็นจำนวนเต็ม และเมื่อมีการประมวลผลคำสั่ง total = total + 3.5 ซึ่งเป็นการบวกเลขจำนวนเต็ม กับ เลขทศนิยม ผลลัพธ์ที่ได้คือ 53.5 ดังนั้นตัวแปร total จะมีการเปลี่ยนชนิดข้อมูลเป็นข้อมูลแบบจำนวนจริง ซึ่งคุณสมบัติในลักษณะนี้ทำให้ไพธอนมีความสะดวกในการใช้งานเป็นอย่างมาก เนื่องจากผู้เขียนโปรแกรมไม่ต้องพะวงกับชนิดข้อมูลของตัวแปร และสามารถใช้งานโปรแกรมได้อย่างอิสระ
ดังได้กล่าวมาแล้วข้างต้นว่าการกำหนดชื่อตัวแปรในภาษาไพธอนทำได้โดยผ่านคำสั่งกำหนดค่า เช่น
>>>my_score = 10
เป็นการกำหนดตัวแปรชื่อ my_score โดยมีชนิดข้อมูลแบบจำนวนเต็ม และ มีค่าของข้อมูลเป็น 10 นั่นคือ my_score ไม่ได้มีค่าเท่ากับ 10 แต่ my_score เป็นการอ้างถึงตำแหน่งของหน่วยความจำที่ใช้ในการเก็บค่าข้อมูล 10 (ประเด็นนี้มีความสำคัญมาก ผู้เขียนจึงขอย้ำรายละเอียดประเด็นนี้อีกครั้งหนึ่ง)
นอกจากนี้ผู้เขียนโปรแกรมยังสามารถกำหนดชนิดข้อมูลแบบอื่นๆ ให้กับตัวแปรได้ เช่น
>>>my_message = "Hello World, I Come in Peace."
>>>print (my_message)
>>> Hello World, I Come in Peace.
ภาษาไพธอนเป็นภาษาที่มีการทำงานกับข้อมูลที่เป็นสายอักขระที่หลากหลาย ซึ่งเป็นประโบชน์อย่างยิ่งในการเขียนโปรแกรม โดยจะได้กล่าวถึงโดยละเอียดต่อไป
ชนิดข้อมูล
ภาษาไพธอนมีชนิดของข้อมูล (Data Type) ให้ใช้ในการเขียนโปรแกรมอย่างครบถ้วย และหลากหลาย เพื่อรองรับการใช้งานในการเขียนโปรแกรมรูปแบบต่างๆ เช่น สายอักขระ (String) ตัวเลข บูลีน (Boolean) ลิสต์ (List) วันที่ และ เวลา เป็นต้น โดยมีรายละเอียด และตัวอย่างการใช้งานดังนี้
• สายอักขระ
สายอักขระเป็นกลุ่มของอักขระเรียงลำดับกัน ซึ่งอาจเป็นตัวอักษร ตัว เลข หรือสัญลักษณ์ต่างๆ โดยการกำหนดสายอักขระจะกำหนดภายในเครื่องหมายคำพูด เช่น
String1 = "I am enclosed in double quotes."
String2 = 'I am enclosed in single quotes.'
จากที่กล่าวมาแล้วว่าสายอักขระเป็นกลุ่มของอักขระที่เรียงลำดับต่อเนื่องกัน ดังนั้นเราจึงสามารถที่จะเข้าถึงและดำเนินการกับสมาชิก หรืออักขระแต่ละตัว โดยอักขระตัวเลขจะอยู่ที่ตำแหน่งเริ่มต้นที่ 0 เช่น กำหนดให้ string3 เป็น ‘hello world’ ดังนี้
string3 = 'hello world'
จะมีลำดับการจัดเก็บสายอักขระ และ การเข้าถึง ดังนี้
0 1 2 3 4 5 6 7 8 9 10
h e l l o w o r l d
-11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
การเข้าถึงอักขระแต่ละตัวสามารถทำได้โดยการกำหนดเลขดัชนีตามที่แสดงในตารางข้างต้น โดยสามารถอ้างอิงตำแหน่งจากซ้ายมือ หรือขวามือก็ได้ โดยในการอ้างอิงตำแหน่งจากซ้ายมือ สามารถระบุตำแหน่งได้โดยตรง เช่น
>>>print(string3[0])
h
>>>_
สำหรับการอ้างอักขระจากขวามือสามารถทำได้โดยการหาขนาดของสายอักขระนั้น (โดยใช้คำสัง len() ) และ กำหนดดัชนีจากขวามือ ดังนี้
>>>print(string3[len(string3) - 3])
r
>>>_
1) การเชื่อมสายอักขระ
การเชื่อมสายอักขระสามารถทำได้โดยใช้คำสั่งดังนี้
string_1 + string_2 + … + string_n
เช่น
string_1 = 'hello'
string_2 = 'world'
string_3 = 'peace'
con_string = string_1 + ' ' + string_2 + ',I Come in ' + string_3
print(con_string)
จะได้ผลลัพธ์เป็น hello world,I Come in peace
2) การทำซ้ำ
การทำซ้ำสายอักขระสามารถทำได้โดยคำสั่ง * และระบุจำนวนครั้งของการทำซ้ำ เช่น ‘a’ * 5 จะได้ ‘aaaaa’ ดังตัวอย่างการใช้คำสั่ง
>>>print('a' * 5)
aaaaa
>>>_
3) การหาขนาดของสายอักขระ
การหาขนาดของสายอักขระสามารถทำได้โดยใช้คำสั่ง len() ดังนี้
>>>len('hello')
5
>>>_
4) การเลื่อนตำแหน่ง
การเลื่อนตำแหน่ง เป็นการกำหนดสายอักขระย่อยภายในสายอักขระทั้งหมด โดยในการกำหนดนั้นจะมีดัชนี 2 ตัว โดยดัชนีตัวแรกจะหมายถึงตำแหน่งเริ่มต้น และดัชนีตัวที่สอง หมายถึงตำแหน่งสิ้นสุดของสายอักขระที่ต้องการ เช่น
string_1 = 'hello world'
sli = string_1[1:4]
print(sli)
จะได้ผลลัพธ์เป็น
ell
นั่นคืออักขระลำดับที่ 1 2 และ 3 โดยไม่นับรวมอักขระลำดับที่ 4
5) การเปลี่ยนขนาดตัวพิมพ์
การเปลี่ยนขนาดตัวพิมพ์ ทำได้โดยใช้ตุณสมบัติ lower() และ upper() ดังตัวอย่าง
string_1 = 'Hello World, I Come in Peace.'
print(string_1.lower())
print(string_1.upper())
จะได้ผลลัพธ์เป็น
hello world, i come in peace.
HELLO WORLD, I COME IN PEACE.
6) การเปลี่ยนชนิดข้อมูลอื่นเป็นสายอักขระ
ในบางกรณีเราอาจต้องการเปลี่ยนข้อมูลชนิดอื่นๆ เป็นสายอักขระ ซึ่งจะเป็นประโยชน์อย่างมากในการพิมพ์สายอักขระที่มีข้อมูลอื่นรวมอยู่ในระหว่างสายอักขระ โดยสามารถเปลี่ยนชนิดข้อมูลได้โดยใช้คำสั่ง str() ดังนี้
age = 23
print('my age is:' + str(age))
จะได้ผลลัพธ์เป็น
my age is:23
• ตัวเลข
ภาษาไพธอนออกแบบให้สามารถใช้งานตัวแปรได้โดยไม่ต้องประกาศชนิดข้อมูลไว้ล่วงหน้า กล่าวคือ สามารถกำหนดชนิดข้อมูล ละเปลี่ยนแปลงชนิดของข้อมูลได้คลอดเวลาที่ต้องการ โดยชนิดข้อมูลและตัวอย่างการใช้งาน มีดังนี้
1) จำนวนเต็ม
a = 1 #จำนวนเต็มบวก
b = -1 #จำนวนเต็มลบ
print(a, b, a + b)
c = 0O7 #เลขฐาน 8
print(c)
d = 0xA0C #เลขฐาน 16
print(d)
e = 0b1100 #เลขฐาน 2
print(e)
จะได้ผลลัพธ์เป็น
1 -1 0
7
2572
12
ในกรณีที่ต้องการแปลงเลขจำนวนเต็มจากฐานหนึ่งไปยังอีกฐานหนึ่งสามารถทำได้โดยการใช้คำสั่ง hex() bin() และ oct() เพื่อแปลงตัวเลขที่ระบุให้เป็นเลขฐาน 16 ฐาน 2 หรือ ฐาน 8 ตามลำดับ เช่น
print(oct(7))
print(hex(2572))
print(bin(12))
จะได้ผลลัพธ์เป็น
0o7
0xa0c
0b1100
2) จำนวนจริง (ทศนิยม)
จำนวนจริง หรือทศนิยมเป็นตัวเลขที่มีความละเอียดมากขึ้น โดยมีองค์ประกอบของแต่ละค่าแบ่งเป็น 3 ส่วน คือส่วนที่เป็นจำนวนเต็ม ส่วนที่เป็นจุด และส่วนที่เป็นทศนิยมซึ่งแสดงในรูปของจำนวนเต็ม เช่น 10.23456 เป็น นอกจากนี้ยังสามารถเขียนจำนวนจริงในรูปของเลขยกกำลังได้ เช่น 123.4e2 ซึ่งมีค่าเท่ากับ 123.4 X 102 ซึ่งเท่ากับ 12340 นั่นเอง
3) การแปลงชนิดข้อมูลแบบตัวเลข
เราสามารถแปลงข้อมูลตัวเลขได้เช่นเดียวกับการแปลงฐาน โดยใช้คำสั่ง float() และ int() เพื่อแปลงเป็นจำนวนจริง หรือจำนวนเต็ม เช่น
a = 12
b = 12.5
print('a =', float(a))
print('b =', int(b))
จะได้ผลลัพธ์เป็น
a = 12.0
b = 12
การที่ b มีค่าเป็น 12 เนื่องจากมีการปัดเศษเพื่อให้เป็นจำนวนเต็ม
• วันที่ และ เวลา
เนื่องจากโปรแกรมส่วนใหญ่จะมีการใช้งานข้อมูลเกี่ยวกับวันที่ และเวลา ภาษาไพธอนจึงเตรียมการทำงานที่เกี่ยวข้องกับวันที่ และเวลาไว้เพื่ออำนวยความสะดวกแก่ผู้เขียนโปรแกรม โดยสามารถเรียกใช้งานได้ด้วยคำสั่ง datetime() แต่เนื่องจากเป็นคำสั่งที่อยู่ภานนอกโปรแกรมของผู้ใช้ ดังนั้นจึงต้องมีการรำส่วนของโปรแกรมนั้นเข้ามาในโปรแกรมของผู้ใช้ก่อน จึงจะสามารถใช้งานคำสั่งได้ โดยการนำเข้าโปรแกรมสาที่ถทำได้โดยใช้คำสั่ง import ดังนี้
>>>from datetime import datetime
>>>print(datetime.now())
2019-05-03 18:13:15.788192
>>>_
นอกจากนี้ยังสามารถกำหนดรูปแบบการแสดงผล วันที่ และเวลาได้โดยใช้ strftime() เช่น
>>>from time import strftime
>>>print(strftime("%Y-%m-%d %H:%M:%S"))
2019-05-03 18:17:27
>>>_
• บูลีน
การเปรียบเทียบค่าในภาษาไพธอนมีผลลัพธ์เพียงสองค่า คือ จริง หรือ เท็จ เท่านั้น โดยข้อมูลชนิดนี้เรียกว่าบูลีน เช่น
bool_1 = 4 == 2*3
bool_2 = 10 < 2 * 2**3
bool_3 = 8 > 2 * 4 + 1
print(bool_1)
print(bool_2)
print(bool_3)
จะได้ผลลัพธ์เป็น
False
True
False
• ลิสต์
ลิสต์เป็นชนิดข้อมูลที่ใช้ในการจัดเก็บกลุ่ม หรือเซทของข้อมูล ซึ่งสามารถจัดเก็บกลุ่มของข้อมูลที่มีชนิดข้อมูลได้ทุกแบบ โดยมีรูปแบบในการกำหนด หรือการจัดเก็บข้อมูล ดังนี้
my_list = [item_1, item_2, item_3]
ในกรณีที่ต้องการกำหนดลิสต์ว่าง (ลิสต์ที่ยังไม่กำหนดสมาชิก) my_list = [] ตัวอย่างการใช้งานลิสต์ โดยกำหนดให้มีสมาชิกเป็นสีต่างๆ จำนวน 5 สี ดังนี้
colors = ['red', 'orange', 'yellow', 'green', 'white']
ลำดับของสมาชิกในลิสต์สามารถอ้างอิงโดยใช้ดัชนเช่นเดียวกันกับการอ้างลำดับอักขระในสายอักขระ โดยสมาชิกตัวแรกจะเริ่มต้นที่ 0 เช่น
>>>colors = ['red', 'orange', 'yellow', 'green', 'white']
>>>print (colors[0])
red
`>>>_'
หรือหากต้องการทราบจำนวนสมาชิกในลิสต์ จะใช้คำสั่ง len() เช่น
>>>len(colors)
5
>>>_
นอกจากนี้ยังสามารถแสดงจำนวนสมาชิกในลิสต์ การลบ และการเพิ่มสมาชิกในลิสต์ ดังตัวอย่างการใช้งาน (ใช้ python shell) ดังนี้ การแสดงจำนวนสมาชิกในลิสต์
>>> print(colors)
['red', 'orange', 'yellow', 'green', 'white']
>>>_
การลบสมาชิก
>>> colors.remove('green')
>>> print(colors)
['red', 'orange', 'yellow', 'white']
>>>_
การเพิ่มสมาชิก (ต่อท้ายจากสมาชิกเดิม)
>>> colors.append('black')
>>> print(colors)
['red', 'orange', 'yellow', 'white', 'black']
>>>_
การเพิ่ม หรือแทรกสมาชิกใหม่ในตำแหน่งที่ระบุ
>>> colors.insert(3,'pink')
>>> print(colors)
['red', 'orange', 'yellow', 'pink', 'white', 'black']
>>>_
การอ้างอิงสมาชิกในลิสต์ สามารถทำได้โดยการอ้างอิงที่ละสมาชิก ดังที่กล่าวมาแล้ว หรืออาจอ้างอิงกลุ่มของสมาชิกที่ต้องการโดยการเลื่อนตำแหน่งดัชนีเช่นเดียวกันกับการดำเนินการกับสายอักขระ เช่น
>>> colors[2:5]
['yellow', 'pink', 'white']
>>>_
หรือ
>>> colors[len(colors)-2]
'white'
>>>_
• ดิกชั่นนารี
ดิกชั่นนารี่เป็นข้อมูลที่มีสมาชิกอยู่ภายในเช่นเดียวกับลิสต์ แตกต่างกันที่การอ้างอิงถึงสมาชิกนั้นในลิสต์จะดำเนินการโดยการอ้างลำดับของสมาชิกโดยใช้ดัชนี (ซึ่งเริ่มต้นที่ 0 เสมอ) แต่ในดิกชั่นนารี่จะเป็นการกำหนดดัชนี (หรือที่เรียกว่ากุญแจ) ในการอ้างอิงเพื่อการเข้าถึงเอง ดังนั้นสมาชิกแต่ละตัวในดิกชั่นนารี่จะประกอบด้วยข้อมูล 2 ส่วนคือ กุญแจ และ ข้อมูลที่กุญแจนั้นอ้างถึง โดยข้อมูลทั้งสองส่วนเชื่อมกันด้วยเครื่องหมาย “:” เช่น
>>>menu = {'salad':10, 'rice':20, 'noodle':30 }
การแสดงจำนวนสมาชิกในดิกชั่นนารี่
>>> len(menu)
3
>>>_
การแสดงข้อมูลในดิกชั่นนารี่
>>> print(menu)
{'salad': 10, 'rice': 20, 'noodle': 30}
>>>_
การเพิ่มสมาชิกในดิกชั่นนารี่
>>> menu['pad-thai'] = 40
>>> print(menu)
{'salad': 10, 'rice': 20, 'noodle': 30, 'pad-thai': 40}
>>>_
การลบสมาชิกในดิกชั่นนารี่
>>> del menu['rice']
>>> print(menu)
{'salad': 10, 'noodle': 30, 'pad-thai': 40}
>>>_
การแก้ไขข้อมูลของสมาชิกในดิกชั่นนารี่
>>> menu['noodle']=35
>>> print(menu)
{'salad': 10, 'noodle': 35, 'pad-thai': 40}
>>>_
การลบข้อมูลสมาชิกทั้งหมด
>>> dict.clear(menu)
>>> print (menu)
{}
>>>_
การลบ หรือยกเลิกการกำหนดดิกชั่นนารี่
>>> del menu
>>> print (menu)
Traceback (most recent call last):
File "<pyshell#29>", line 1, in <module>
print (menu)
NameError: name 'menu' is not defined
>>>_
สาเหตุของข้อผิดพลาดที่เกิดขึ้นคือไม่มีการกำหนด ‘menu’ เนื่องจากได้ลบ หรือยกเลิกไปแล้วนั่นเอง
<-ไวยากรณ์ภาษาไพธอน คำสั่งดำเนินการ->
ถาม-ตอบ
aYlNlfdX Oct. 14, 2023, 2:06 a.m.
aYlNlfdX Oct. 14, 2023, 2:07 a.m.
aYlNlfdX Oct. 14, 2023, 2:07 a.m.
aYlNlfdX Oct. 14, 2023, 2:07 a.m.
aYlNlfdX Oct. 14, 2023, 2:07 a.m.
aYlNlfdX Oct. 14, 2023, 2:07 a.m.
aYlNlfdX Oct. 14, 2023, 2:07 a.m.
aYlNlfdX Oct. 14, 2023, 2:11 a.m.
aYlNlfdX Oct. 14, 2023, 2:12 a.m.
aYlNlfdX Oct. 14, 2023, 2:12 a.m.
aYlNlfdX Oct. 14, 2023, 2:12 a.m.
aYlNlfdX Oct. 14, 2023, 2:12 a.m.
aYlNlfdX Oct. 14, 2023, 2:12 a.m.
aYlNlfdX Oct. 14, 2023, 2:13 a.m.
aYlNlfdX Oct. 14, 2023, 2:15 a.m.
aYlNlfdX Oct. 14, 2023, 2:15 a.m.
aYlNlfdX Oct. 14, 2023, 2:17 a.m.
aYlNlfdX Oct. 14, 2023, 2:17 a.m.
aYlNlfdX Oct. 14, 2023, 2:25 a.m.
aYlNlfdX Oct. 14, 2023, 2:25 a.m.
aYlNlfdX Oct. 14, 2023, 2:25 a.m.
aYlNlfdX Oct. 14, 2023, 2:25 a.m.
aYlNlfdX Oct. 14, 2023, 2:26 a.m.
aYlNlfdX Oct. 14, 2023, 2:26 a.m.
aYlNlfdX Oct. 14, 2023, 2:26 a.m.
aYlNlfdX Oct. 14, 2023, 2:26 a.m.
aYlNlfdX Oct. 14, 2023, 2:26 a.m.
aYlNlfdX Oct. 14, 2023, 2:26 a.m.
aYlNlfdX Oct. 14, 2023, 2:26 a.m.
aYlNlfdX Oct. 14, 2023, 2:27 a.m.
aYlNlfdX Oct. 14, 2023, 2:27 a.m.
aYlNlfdX Oct. 14, 2023, 2:27 a.m.
aYlNlfdX Oct. 14, 2023, 2:27 a.m.
aYlNlfdX Oct. 14, 2023, 2:28 a.m.
aYlNlfdX Oct. 14, 2023, 2:28 a.m.
aYlNlfdX Oct. 14, 2023, 2:28 a.m.
aYlNlfdX Oct. 14, 2023, 2:28 a.m.
aYlNlfdX Oct. 14, 2023, 2:29 a.m.
aYlNlfdX Oct. 14, 2023, 2:29 a.m.
aYlNlfdX Oct. 14, 2023, 2:29 a.m.
aYlNlfdX Oct. 14, 2023, 2:29 a.m.
aYlNlfdX Oct. 14, 2023, 2:29 a.m.
aYlNlfdX Oct. 14, 2023, 2:29 a.m.
nZkkAbWB Jan. 22, 2024, 2:49 p.m.
nZkkAbWB Jan. 22, 2024, 2:49 p.m.
nZkkAbWB Jan. 22, 2024, 2:49 p.m.
nZkkAbWB Jan. 22, 2024, 2:49 p.m.
nZkkAbWB Jan. 22, 2024, 2:49 p.m.
nZkkAbWB Jan. 22, 2024, 2:50 p.m.
nZkkAbWB Jan. 22, 2024, 2:50 p.m.
nZkkAbWB Jan. 22, 2024, 2:50 p.m.
nZkkAbWB Jan. 22, 2024, 2:50 p.m.
nZkkAbWB Jan. 22, 2024, 2:50 p.m.
nZkkAbWB Jan. 22, 2024, 2:50 p.m.
nZkkAbWB Jan. 22, 2024, 2:51 p.m.
nZkkAbWB Jan. 22, 2024, 2:51 p.m.
nZkkAbWB Jan. 22, 2024, 2:51 p.m.
nZkkAbWB Jan. 22, 2024, 2:51 p.m.
nZkkAbWB Jan. 22, 2024, 2:51 p.m.
nZkkAbWB Jan. 22, 2024, 2:51 p.m.
nZkkAbWB Jan. 22, 2024, 2:51 p.m.
nZkkAbWB Jan. 22, 2024, 2:54 p.m.
nZkkAbWB Jan. 22, 2024, 2:54 p.m.
nZkkAbWB Jan. 22, 2024, 2:54 p.m.
nZkkAbWB Jan. 22, 2024, 2:54 p.m.
nZkkAbWB Jan. 22, 2024, 2:55 p.m.
nZkkAbWB Jan. 22, 2024, 2:55 p.m.
nZkkAbWB Jan. 22, 2024, 2:55 p.m.
nZkkAbWB Jan. 22, 2024, 2:55 p.m.
nZkkAbWB Jan. 22, 2024, 2:56 p.m.
nZkkAbWB Jan. 22, 2024, 2:56 p.m.
nZkkAbWB Jan. 22, 2024, 2:57 p.m.
nZkkAbWB Jan. 22, 2024, 2:57 p.m.
nZkkAbWB Jan. 22, 2024, 2:57 p.m.
nZkkAbWB Jan. 22, 2024, 2:57 p.m.
nZkkAbWB Jan. 22, 2024, 2:57 p.m.
nZkkAbWB Jan. 22, 2024, 2:57 p.m.
nZkkAbWB Jan. 22, 2024, 2:57 p.m.
nZkkAbWB Jan. 22, 2024, 2:57 p.m.
nZkkAbWB Jan. 22, 2024, 2:57 p.m.
nZkkAbWB Jan. 22, 2024, 2:57 p.m.
nZkkAbWB Jan. 22, 2024, 2:58 p.m.
nZkkAbWB Jan. 22, 2024, 2:58 p.m.
nZkkAbWB Jan. 22, 2024, 2:58 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:02 p.m.
nZkkAbWB Jan. 22, 2024, 3:03 p.m.
nZkkAbWB Jan. 22, 2024, 3:03 p.m.
nZkkAbWB Jan. 22, 2024, 3:03 p.m.
nZkkAbWB Jan. 22, 2024, 3:03 p.m.
nZkkAbWB Jan. 22, 2024, 3:03 p.m.
nZkkAbWB Jan. 22, 2024, 3:03 p.m.
nZkkAbWB Jan. 22, 2024, 3:04 p.m.
nZkkAbWB Jan. 22, 2024, 3:04 p.m.
nZkkAbWB Jan. 22, 2024, 3:04 p.m.
nZkkAbWB Jan. 22, 2024, 3:04 p.m.
nZkkAbWB Jan. 22, 2024, 3:04 p.m.
nZkkAbWB Jan. 22, 2024, 3:04 p.m.
nZkkAbWB Jan. 22, 2024, 3:04 p.m.
nEcdyGgx Nov. 3, 2024, 10:07 a.m.
nEcdyGgx Nov. 3, 2024, 10:07 a.m.
nEcdyGgx Nov. 3, 2024, 10:12 a.m.
nEcdyGgx Nov. 3, 2024, 10:12 a.m.
nEcdyGgx Nov. 3, 2024, 10:16 a.m.
nEcdyGgx Nov. 3, 2024, 10:16 a.m.
nEcdyGgx Nov. 3, 2024, 10:53 a.m.
nEcdyGgx Nov. 3, 2024, 10:53 a.m.
nEcdyGgx Nov. 3, 2024, 7:18 p.m.
nEcdyGgx Nov. 3, 2024, 8:24 p.m.
nEcdyGgx Nov. 3, 2024, 8:24 p.m.
Login Required! AnonymousUser