ผลต่างระหว่างรุ่นของ "Python Programming/Strings"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
 
(ไม่แสดง 4 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน)
แถว 66: แถว 66:
 
</pre>
 
</pre>
  
== การจัดรูปแบบสตริง ==
+
== การแทรกค่าลงในสตริง ==
ไพทอนมีความสามารถในจัดรูปแบบสตริงคล้ายฟังก์ชัน <tt>sprintf</tt> หรือ <tt>printf</tt> ในภาษา C โดยใช้เครื่องหมายเปอร์เซ็นต์เป็นตัวบ่งบอกถึงการจัดรูปแบบสตริง
+
ไพทอนมีความสามารถในการแทรกค่าลงสริงคล้ายฟังก์ชัน <tt>sprintf</tt> หรือ <tt>printf</tt> ในภาษา C โดยใช้เครื่องหมายเปอร์เซ็นต์เป็นตัวบ่งบอกถึงการจัดรูปแบบสตริง โดยมีรูปแบบการใช้งานดังนี้
 +
<<สตริงที่มีเครื่องหมาย % บ่งบอกถึงตำแหน่งที่ต้องการแทรกค่าลงไป>> % <<นิพจน์>>
 +
ในกรณีที่มีนิพจน์ที่ต้องการแทรกค่าหลายนิพจน์ ให้คั่นนิพจน์ที่ติดกันด้วยเครื่องหมายคอมมา (,) แล้วล้อมลำดับของนิพจน์ทั้งหมดด้วยวงเล็บ
 +
<<สตริงที่มีเครื่องหมาย % บ่งบอกถึงตำแหน่งที่ต้องการแทรกค่าลงไป>> % (<<นิพจน์>>, <<นิพจน์>>, ...)
 +
เช่น
 
<pre title="interpreter">
 
<pre title="interpreter">
>>> "I caught %d fish." % 10
+
>>> 'I caught %d fish.' % 10
 
'I caught 10 fish.'
 
'I caught 10 fish.'
>>> "She ate %.3f litre of milk" % 10.126799
+
>>> 'She ate %.3f litre of milk' % 10.126799
 
'She ate 10.127 litre of milk'
 
'She ate 10.127 litre of milk'
 
>>> "My name is %s." % "Kirisame Marisa"
 
>>> "My name is %s." % "Kirisame Marisa"
 
'My name is Kirisame Marisa.'
 
'My name is Kirisame Marisa.'
 +
>>> "Hello, I'm %s. I'm %d years old." % ("Hakurei Reimu", 17)
 +
"Hello, I'm Hakurei Reimu. I'm 17 years old."
 
</pre>
 
</pre>
  
{{Python Programming/Navigation|Print Command|If Statement}}
+
{{Python Programming/Navigation|Print Command|Boolean Expressions}}

รุ่นแก้ไขปัจจุบันเมื่อ 09:39, 16 ตุลาคม 2551

ค่าประเภทสตริงในไพทอนนั้นคล้ายกับค่าประเภทสตริงในภาษา C และภาษา Java ที่ต่างกันคือทั้งเครื่องหมายฟันหนู (") และเครื่องหมายฝนทอง (') สามารถใช้ล้อมสตริืงเหมือนกัน

>>> print "THIS IS AN EX-PARROT!!"
THIS IS AN EX-PARROT!!
>>> print 'THIS IS AN EX-PARROT!!'
THIS IS AN EX-PARROT!!

เช่นเดียวกับในภาษา C ถ้าเราต้องการตัวอักษรฟันหนู (") ในสตริงที่ล้อมด้วยตัวอักษรฟันหนู เราจะต้องใช้ตัว escape sequence \" แทนตัวอักษรฟันหนู ในทำนองเดียวกัน ถ้าเราต้องการเครื่องฝนทอง (') ในสตริงที่ล้อมด้วยเครื่องหมายฝนทอง เราต้องใช้ escape sequence \' แทน

>>> print "What do you mean \"miss\"?"
What do you mean "miss"?
>>> print 'I\'m sorry, I have a cold.'
I'm sorry, I have a cold.

แต่เราไม่ต้องใช้ escape sequence ถ้าเราต้องการตัวอักษรฟันหนูในสตริงที่่ล้อมด้วยเครื่องหมายฝนทอง และในทางกลับกันก้เป็นจริงด้วย

>>> print '"VOOM"?!? Mate, this bird would not "voom" if you put four million volts through it!'
"VOOM"?!? Mate, this bird would not "voom" if you put four million volts through it!
>>> print "'E's bleedin' demised!"
'E's bleedin' demised! 

Escape sequence อื่นๆ เช่น \n, \t, หรือ \\ ยังมีพฤติกรรมเหมือนกับในภาษา C ทุกประการ

>>> print "PININ' for the FJORDS?!?!?!?\nWhat kind of talk is that?"
PININ' for the FJORDS?!?!?!?
What kind of talk is that?
>>> print "Owner:\t\tNo, no.....No, 'e's stunned!\nMr. Praline:\tSTUNNED?!?"
Owner:		No, no.....No, 'e's stunned!
Mr. Praline:	STUNNED?!?

ฟังก์ชัน len มีไว้สำหรับหาความยาวของสตริง

>>> len("abc")
3
>>> a = "E's pining for the fjords."
>>> len(a)
26

เราสามารถดึงตัวอักษรตัวที่ k ออกจากสตริง s ได้โดยการอ้าง s[k] เหมือนกับในภาษา C และ Java แต่ในภาษาไพทอนเราไม่จำเป็นต้องกำหนดชื่อให้สตริงก่อนที่จะไปดึงเอาตัวอักษรต่างๆ ของมันมา

>>> s = "Nobody expects the Spanish Inquisition"
>>> s[0]
'N'
>>> s[1]
'o'
>>> s[2]
'b'
>>> s[10]
'e'
>>> "abcdefg"[1]
'b'
>>> "abcdefg"[6]
'g'

เราสามารถเอาสตริืงสองตัวมาต่อกันได้โดยใช้เครื่องหมายบวก (+) นอกจากนี้เรายังสามารถคูณสตริงด้วยจำนวนเต็ม โดยมีความหมายว่าให้เอาสตริงมาต่อกันเป็นจำนวนครั้งเท่ากับจำนวนเต็มที่คูณอยู่ด้วย

>>> "crunchy" + " " + "frog"
'crunchy frog'
>>> 2 * "luv"
'luvluv'
>>> "Y" + 10*"e" + "ah"
'Yeeeeeeeeeeah'

การแทรกค่าลงในสตริง

ไพทอนมีความสามารถในการแทรกค่าลงสริงคล้ายฟังก์ชัน sprintf หรือ printf ในภาษา C โดยใช้เครื่องหมายเปอร์เซ็นต์เป็นตัวบ่งบอกถึงการจัดรูปแบบสตริง โดยมีรูปแบบการใช้งานดังนี้

<<สตริงที่มีเครื่องหมาย % บ่งบอกถึงตำแหน่งที่ต้องการแทรกค่าลงไป>> % <<นิพจน์>>

ในกรณีที่มีนิพจน์ที่ต้องการแทรกค่าหลายนิพจน์ ให้คั่นนิพจน์ที่ติดกันด้วยเครื่องหมายคอมมา (,) แล้วล้อมลำดับของนิพจน์ทั้งหมดด้วยวงเล็บ

<<สตริงที่มีเครื่องหมาย % บ่งบอกถึงตำแหน่งที่ต้องการแทรกค่าลงไป>> % (<<นิพจน์>>, <<นิพจน์>>, ...)

เช่น

>>> 'I caught %d fish.' % 10
'I caught 10 fish.'
>>> 'She ate %.3f litre of milk' % 10.126799
'She ate 10.127 litre of milk'
>>> "My name is %s." % "Kirisame Marisa"
'My name is Kirisame Marisa.'
>>> "Hello, I'm %s. I'm %d years old." % ("Hakurei Reimu", 17)
"Hello, I'm Hakurei Reimu. I'm 17 years old."
หน้าก่อน: Print Command สารบัญ หน้าต่อไป: Boolean Expressions