' " \ %
เวลาต้องการใส่อักษรเหล่านี้ลงในสายอักขระจึงอาจต้องระวัง'
หรือแบบคู่ "
ล้อมข้อความ'
หรือ "
อยู่ในสายอักขระแล้วละก็ต้องระวังเพราะอาจทำให้โปรแกรมตีความผิดเข้าใจว่า ตัดจบหรือเริ่มสายอักขระใหม่ได้ ดังนั้นจึงต้องหาวิธีเลี่ยง'
อยู่ก็ต้องใช้ ""
เป็นตัวครอบ
print("คำว่า 'รัก' มันยากจะอธิบาย")
"
อยู่ก็ต้องใช้ ' '
เป็นตัวครอบ\
ช่วย
print("เครื่องหมายคำพูดมีแบบเดี่ยว ' ' และแบบคู่ \" \"")
เครื่องหมายคำพูดมีแบบเดี่ยว ' '
และแบบคู่ " "
\
นี้เป็นตัวที่ทำหน้าที่พิเศษภายในส่วนแสดงผลของสายอักขระ\n
คือ ขึ้นบรรทัดใหม่\t
คือ เคาะเว้นย่อหน้า\b
คือ แบ็กสเปซ (ลบตัวอักษร)\a
คือ ส่งเสียงเตือนprint('ma\bc') # ได้ mc (เพราะ a ถูกลบ)
print('a\ta') # ได้ a a
print('\a') # จะได้ยินเสียงเตือนดังขึ้นมา
\
ตามด้วยตัวอักษรที่รวมแล้วไม่ได้มีความหมายพิเศษก็จะปรากฏตามที่พิมพ์ไป
print('\s') # ได้ \s
\
ตามด้วยอักษรที่รวมแล้วมีความหมายพิเศษ เช่น n t b a
ก็จะเกิดการตีความแล้วให้ผลที่ต่างออกจากที่พิมพ์\
ติดกัน ๒ ขีด เป็น \\
เช่น
print('\\n') # ได้ \n
\
ปรากฏขึ้นแค่ตัวเดียว เพราะ \\
ถูกตีความเป็น \
ตัวเดียว หากต้องการ ๒ ตัวก็พิมพ์ ๔ ตัว
print('\\\\') # ได้ \\
r
ลงไปหน้าเครื่องหมายคำพูด แล้วสายอักขระนั้นจะถูกมองเป็นตัวอักษรตามที่พิมพ์ลงไปทั้งหมด
print(r'\n\t\b\a') # ได้ \n\t\b\a
\u
\U
และ \X
\uคคคค
ระบุอักษรด้วยรหัสยูนิโค้ดแบบ utf-16 (ค
แทนเลขฐาน 16 ทั้งหมด 4 ตัว)\Uคคคคคคคค
ระบุอักษรด้วยรหัสยูนิโค้ดแบบ utf-32 (ค
แทนเลขฐาน 16 ทั้งหมด 8 ตัว)\N{ชื่ออักษร}
คือ ระบุอักษรด้วยชื่อที่ถูกเก็บในฐานข้อมูลของยูนิโค้ดprint('\u0e2e') # ได้ ฮ
print('\U00000e0e') # ได้ ฎ
print("\N{Thai Character Pho Phan}") # ได้ พ
print
ค่าตัวเลขนั้นโดยตรงจะได้ลักษณะที่มีค่าตายตัวแบบหนึ่งe
เช่น
print(3.000000000) # ได้ 3.0
print(0.00000000003) # ได้ 3e-11
print(300000000000000000.) # ได้ 3e+17
print
หรือเมื่อแปลงเป็นสายอักขระได้ ซึ่งทำได้โดยเขียนให้อยู่ในรูปของ %d
, %e
, %f
, ฯลฯ%d
ใช้แทนจำนวนเต็มที่แทรกอยู่ภายในสายอักขระ โดยค่าของจำนวนเต็มที่จะคำนวณนั้นต้องใส่ไว้ด้านหลังเครื่องหมายคำพูด
i = 20
print('==%d=='%i) # ได้ ==20==
i
เข้าไปแทนที่ %d
%
ถึง ๒ ครั้ง แต่ว่า %
ทั้ง ๒ นี้เป็นคนละความหมายกัน%
ตัวแรกอยู่ภายในเครื่องหมายคำพูด วางอยู่ในตำแหน่งที่ต้องการให้ค่าตัวเลขไปอยู่ แล้วก็ตามด้วยชนิดของข้อมูลที่ต้องการแทน ในที่นี้เป็นจำนวนเต็มใช้ d
%
ตัวหลังอยู่หลังเครื่องหมายคำพูดโดยตามหลังด้วยค่าที่ต้องการนำไปแทน โดยอาจเป็นตัวเลขหรือเป็นตัวแปรก็ได้%
ตัวหน้า
print('==%4d=='%19) # ได้ == 19== ให้เพิ่มช่องว่างจนครบ 4 ตำแหน่ง
print('==%4d=='%19000) # ==19000== ถ้าเลขเกิน 4 อยู่แล้วไม่มีผล
print('==%04d=='%19) # ได้ ==0019== ให้ใส่เลข 0 จนถึง 4 ตำแหน่ง
print('==%04d=='%19000) # ==19000== ถ้าเลขเกิน 4 อยู่แล้วไม่มีผล
print('==%+d=='%19) # ได้ ==+19== ให้ใส่เครื่องหมาย + เมื่อเป็นค่าบวก
print('==%+d=='%-19) # ได้ ==-19== ถ้าเป็นลบอยู่แล้วไม่มีผล
print('==%+04d=='%19) # ได้ ==+019== 4 ตำแหน่งนี้นับรวมเครื่องหมายด้วย
s = ['no.%02d'%i for i in range(1,21)]
print(s) # ได้ ['no.01', 'no.02', 'no.03', 'no.04', 'no.05', 'no.06', 'no.07', 'no.08', 'no.09', 'no.10', 'no.11', 'no.12', 'no.13', 'no.14', 'no.15', 'no.16', 'no.17', 'no.18', 'no.19', 'no.20']
,
print('%02d / %02d / %04d'%(9,2,2016)) # ได้ 09 / 02 / 2016
%d
ที่ให้แสดงเลขตามปกติเป็นฐาน 10
ที่เราคุ้นเคยกันดีแล้ว หากแทนด้วย %x
ก็จะได้ค่าเป็นเลขฐาน 16
แทน
print('%x'%(2**16-1)) # ได้ ffff
print('%x'%(27365824924)) # ได้ 65f21599c
print('%09x'%1000) # ได้ 0000003e8
16
มีประโยชน์ เพราะใช้แทนค่ารหัสสีซึ่งมักประกอบไปด้วยค่าของเลขฐาน 16
ของค่าแม่สีทั้งสาม
print('#%02x%02x%02x'%(10,252,90)) # ได้#0afc5a
%f
ในการแสดง สามารถปรับตำแหน่งหลักและตำแหน่งเลขทศนิยมได้
print('==%12f=='%129.3) # ได้ == 129.300000== เติมช่องว่างจนครบ 12 ตำแหน่ง
print('==%012f=='%129.3) # ได้ ==00129.300000== เติม 0 จนครบ 12 ตำแหน่ง
print('==%.3f=='%129.3) # ได้ ==129.300== ทศนิยม 3 ตำแหน่ง
print('==%.0f=='%129.3) # ได้ ==129== เศษถูกปัดทิ้ง
print('==%12.3f=='%129.3) # ได้ == 129.300==
print('==%012.3f=='%129.3) # ได้ ==00000129.300==
%e
ซึ่งจะแสดงเป็นตัวเลขในรูปแบบ e
pi = 3.14159
print('==%e=='%pi) # ได้ ==3.141590e+00==
print('==%15e=='%pi) # ได้ == 3.141590e+00==
print('==%015e=='%pi) # ได้ ==0003.141590e+00==
print('==%.8e=='%pi) # ได้ ==3.14159000e+00==
print('==%.2e=='%pi) # ได้ ==3.14e+00==
print('==%015.8e=='%pi) # ได้ ==3.14e+00==
%s
ซึ่งแสดงผลสายอักขระเอง
print('==%s=='%'asa') # ได้ ==asa==
print('==%5s=='%'asa') # ได้ == asa6==
%s
นี้ยังใช้กับข้อมูลชนิดกลุ่มเช่นลิสต์หรือทูเพิลได้ด้วย ผลที่ได้จะเหมือนกับเวลาที่ print
ลิสต์หรือทูเพิลนั้นออกมาโดดๆprint('==%s=='%[1,2]) # ได้ ==[1, 2]==
print('==%25s=='%['a','s','a']) # ได้ == ['a', 's', 'a']==
%
จะถูกตีความว่าเป็นการใส่ข้อมูลหลายตัว ดังนั้นต้องเขียนในรูปทูเพิลซ้อนทูเพิลprint('==%s=='%('a','s','a')) # ได้ TypeError: not all arguments converted during string formatting
print('==%s %s %s=='%('a','s','a')) # ได้ ==a s a==
print('==%s=='%(('a','s','a'),)) # ได้ ==('a', 's', 'a')==
%
ที่อยู่ด้านหน้า หรือชนิดผิด ก็จะขัดข้องทันที
print('==%s,%s=='%'asa') # ได้ TypeError: not enough arguments for format string
print('==%f=='%'asa') # ได้ TypeError: a float is required
%
ตัวอื่นอยู่ในสายอักขระและไม่ได้ต้องการให้แสดงผลด้วยเลยให้ใส่ %
นำหน้าอีกตัว
print('==%.2f%%formaldehyde=='%70) # ได้ ==70%formaldehyde==
\n
\t
\b
\a
\'
\"
\\
ให้ดี%d
%x
%f
%e
สามารถเปลี่ยนให้หลากหลายขึ้นได้ติดตามอัปเดตของบล็อกได้ที่แฟนเพจ