Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python f Strings:The Ultimate Guide

สตริง Python f ฝังนิพจน์ลงในสตริง นิพจน์อาจเป็นเนื้อหาของ ตัวแปร หรือผลลัพธ์ของการคำนวณทางคณิตศาสตร์ หรือค่า Python อื่น สตริง f แตกต่างจากสตริงปกติเนื่องจากตัวอักษร f มาก่อนสตริง


เมื่อคุณกำลังเขียนสตริง คุณอาจต้องการเปลี่ยนส่วนของสตริงเพื่อใช้ค่าเฉพาะ ตัวอย่างเช่น คุณอาจต้องการให้สตริงปรากฏขึ้นโดยมีค่าที่ผู้ใช้แทรกลงในคอนโซล

Python รองรับการจัดรูปแบบสตริงมาระยะหนึ่งแล้ว แต่ Python 3.6 ได้แนะนำวิธีการใหม่ในการเปลี่ยนสตริงเพื่อรวมค่าใหม่:f strings

บทช่วยสอนนี้จะกล่าวถึงพื้นฐานของสตริง f ใน Python โดยมีการอ้างอิงถึงตัวอย่าง เมื่ออ่านบทช่วยสอนนี้จบ คุณจะเป็นผู้เชี่ยวชาญในการใช้สตริง Python f

การจัดรูปแบบสตริงของ Python

ก่อนหน้า Python 3.6 คุณสามารถจัดรูปแบบสตริง Python ได้สองวิธี คุณสามารถใช้การจัดรูปแบบเปอร์เซ็นต์ (%) และ str.format() .

การจัดรูปแบบเปอร์เซ็นต์

การจัดรูปแบบเปอร์เซ็นต์มีมาตั้งแต่ต้น และช่วยให้คุณจัดรูปแบบสตริงด้วยค่าเดียวหรือหลายค่าได้

ต่อไปนี้คือตัวอย่างแนวทางการจัดรูปแบบเปอร์เซ็นต์ที่ใช้งานจริง:

email = "lindsay.ballantyne@gmail.com"
new_string = "Your email address is %s." % email
print(new_string)

รหัสของเราส่งคืน:

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

Your email address is lindsay.ballantyne@gmail.com

ในโค้ดของเรา เราใช้เครื่องหมาย %s เป็นตัวยึดตำแหน่งสำหรับสตริงใหม่ของเราใน "ที่อยู่อีเมลของคุณคือ %s" สตริง ที่ส่วนท้ายของรหัสบรรทัดนั้น เราใช้เครื่องหมายเปอร์เซ็นต์ตามด้วย "อีเมล" เพื่อแทนที่ %s ด้วยที่อยู่อีเมลของผู้ใช้ของเรา

str.format()

ใน Python 2.6 มีการแนะนำวิธีการใหม่ในการจัดรูปแบบสตริง:format() ฟังก์ชัน

สมมติว่าเราต้องการจัดรูปแบบสตริงที่มีค่าสองค่า เราสามารถทำได้โดยใช้ format() วิธีการดังนี้:

name = "Lindsay Ballantyne"
email = "lindsay.ballantyne@gmail.com"
new_string = "Hello, {}. Your email address is {}.".format(name, email)

รหัสของเราส่งคืน:

Hello, Lindsay Ballantyne. Your email address is lindsay.ballantyne@gmail.com.

ในโค้ดของเรา เรากำหนดตัวแปร Python สองตัวคือ "name" และ "email" ตัวแปรเหล่านี้เก็บชื่อและที่อยู่อีเมลของบุคคลที่ใช้โปรแกรมของเรา จากนั้น เราใช้ .format() ไวยากรณ์เพื่อเพิ่มค่า "ชื่อ" และ "อีเมล" ให้กับสตริงของเรา

รูปแบบสตริงของ Python f

สตริง Python f ฝังนิพจน์ลงในสตริงตามตัวอักษร คุณสามารถใช้สตริง f เพื่อฝังตัวแปร สตริง หรือผลลัพธ์ของฟังก์ชันลงในสตริงได้ สตริง f นำหน้าด้วย "f" ที่จุดเริ่มต้น ก่อนที่สตริงจะเริ่มต้น

เปิดตัวใน Python 3.6 ทำให้จัดรูปแบบสตริงได้ง่ายขึ้น

f strings ใช้วงเล็บปีกกาเพื่อเก็บค่าที่ควรจัดรูปแบบเป็นสตริง สตริง f ยังใช้ตัวพิมพ์ใหญ่ "F" เพื่อแสดงสตริงที่จัดรูปแบบได้

พิจารณาไวยากรณ์นี้:

f"This is a string."

เราเพิ่งกำหนดตัวอักษรสตริงที่จัดรูปแบบแล้ว เราสามารถเพิ่มค่าให้กับสตริงโดยใช้วงเล็บปีกกา:{}.

บางคนอ้างถึงการจัดรูปแบบสตริงว่าเป็นการแก้ไขสตริง แนวคิดทั้งสองนี้อ้างถึงแนวคิดเดียวกัน นั่นคือ การเพิ่มค่าลงในสตริงอื่น

มาดูตัวอย่างการใช้งานสตริง f กัน

f String Python ตัวอย่าง

สมมติว่าเราต้องการเพิ่มชื่อ “Lindsay Ballantyne” ให้กับสตริง เราสามารถทำได้โดยใช้รหัสนี้:

name = "Lindsay Ballantyne"
print(f"Your name is {name}.")

รหัสของเราส่งคืน:

Your name is Lindsay Ballantyne.

ในโค้ดของเรา เราประกาศตัวแปรที่เรียกว่า "name" ซึ่งเก็บชื่อผู้ใช้ของเราไว้ จากนั้น เราใช้สตริง f เพื่อเพิ่มค่า “Lindsay Ballantyne” ลงในสตริง

นี่แสดงว่าคุณสามารถแทรกค่าของตัวแปรลงในสตริง f ได้โดยตรง ไวยากรณ์ง่ายกว่าตัวเลือกการจัดรูปแบบอื่นๆ ทั้งหมด เช่น วิธี format() หรือ % string

นั่นไม่ใช่ทั้งหมด. สตริง f ยังสามารถสนับสนุนฟังก์ชันหรือนิพจน์อื่น ๆ ที่ประเมินภายในสตริง สมมติว่าเราต้องการใช้ฟังก์ชันทางคณิตศาสตร์ของ Python ในสตริง f เราสามารถทำได้โดยใช้รหัสนี้:

name = "Lindsay Ballantyne"
print(f"Your name is {name}. On your next birthday, you will be {22 + 1}.")

รหัสของเราส่งคืน:

Your name is Lindsay Ballantyne. On your next birthday, you will be 23.

เราสามารถทำหน้าที่ทางคณิตศาสตร์ได้

เนื่องจากนิพจน์ในตัวอักษรสตริงได้รับการประเมินในขณะใช้งาน และเป็นส่วนหนึ่งของโปรแกรมหลัก ฟังก์ชันทางคณิตศาสตร์ของเราคือ "22 + 1" ซึ่งเราทำโดยการใส่ฟังก์ชันไว้ในวงเล็บปีกกา

หลายสายหลาม f สตริง

ไวยากรณ์สตริง f รองรับการจัดรูปแบบสตริงหลายบรรทัด คุณสามารถสร้างสตริง f แบบหลายบรรทัดของ Python ได้โดยการใส่สตริง f หลายอันไว้ในวงเล็บปีกกา

สมมติว่าเราต้องการจัดรูปแบบค่าในสตริงหลายบรรทัด เราสามารถทำได้โดยใช้รหัสนี้:

name = "Lindsay Ballantyne"
email = "lindsay.ballantyne@gmail.com"
age = 22

profile = (
	f"Name: {name} \n"
	f"Email: {email} \n"
	f"Age: {age} \n"
)

print(profile)

รหัสของเราส่งคืน:

Name: Lindsay Ballantyne
Email: lindsay.ballantyne@gmail.com
Age: 22

ในโค้ดของเรา เราได้ประกาศตัวแปรสามตัว ได้แก่ ชื่อ อีเมล และอายุ ซึ่งเก็บข้อมูลเกี่ยวกับผู้ใช้ของเรา จากนั้น เราก็สร้างสตริงแบบหลายบรรทัดซึ่งจัดรูปแบบโดยใช้ตัวแปรเหล่านั้น

สังเกตว่า ในโค้ดของเรา เราใส่ f ก่อนแต่ละบรรทัดในสตริง multiline ของเราอย่างไร เนื่องจากถ้าคุณไม่วาง f ไว้ข้างหน้าแต่ละบรรทัด ไวยากรณ์ของสตริง f จะไม่ถูกนำมาใช้

f อักขระพิเศษสตริง

ยังมีสิ่งหนึ่งที่คุณต้องเรียนรู้ก่อนที่จะเริ่มใช้สตริง f ในโค้ดของคุณ คุณจำเป็นต้องรู้วิธีจัดการกับอักขระพิเศษด้วยสตริง f

ต่อไปนี้เป็นกฎสองสามข้อที่คุณควรจำไว้เมื่อคุณใช้สตริง f

เครื่องหมายอัญประกาศ

เมื่อคุณใช้สตริง f คุณสามารถใช้เครื่องหมายอัญประกาศในนิพจน์ของคุณได้ แต่คุณต้องใช้เครื่องหมายคำพูดประเภทอื่นนอกเหนือจากที่คุณใช้นอกสตริง f ต่อไปนี้คือตัวอย่างเครื่องหมายคำพูดที่ใช้ในสตริง f:

print(f"{'It is Thursday!'}")

รหัสของเราส่งคืน:

It is Thursday

สังเกตว่าเราใช้เครื่องหมายคำพูดเดี่ยว (') ในสตริง f ของเรา (ซึ่งแสดงโดยใช้เครื่องหมายปีกกา) และเครื่องหมายคำพูดคู่ ("") เพื่อแสดงสตริงทั้งหมดของเรา

พจนานุกรม

ในการอ้างอิงค่าในพจนานุกรม Python คุณจะต้องใช้เครื่องหมายคำพูด คุณควรตรวจสอบให้แน่ใจว่าคุณใช้เครื่องหมายคำพูดประเภทอื่นเมื่อคุณอ้างอิงแต่ละค่าในพจนานุกรมของคุณ

ต่อไปนี้คือตัวอย่างการทำงานกับพจนานุกรมและสตริง f:

user = {name: "Lindsay Ballantyne", email: "lindsay.ballantyne@gmail.com"}
print(f{"Hello, {user['name']}. Your email address is: {user['email']}.")

รหัสของเราส่งคืน:

Hello, Lindsay Ballantyne. Your email address is: lindsay.ballantyne@gmail.com

โปรดทราบว่าเมื่อเราอ้างถึงค่าในพจนานุกรมของเรา เราใช้เครื่องหมายคำพูดเดี่ยว (‘’) สตริง f หลักของเราใช้เครื่องหมายคำพูดคู่ (“”) ซึ่งจะช่วยป้องกันข้อผิดพลาดในการจัดรูปแบบสตริงไม่ให้เกิดขึ้นในโค้ดของเรา

วงเล็บปีกกา

ในการใช้วงเล็บปีกกาในสตริง f คุณต้องใช้เครื่องหมายปีกกาคู่ ต่อไปนี้คือตัวอย่างวงเล็บปีกกาในสตริง f:

print(f"{{This is a test}}")

รหัสของเราส่งคืน:

{This is a test}

คุณจะเห็นได้ว่าเครื่องมือจัดฟันชุดเดียวปรากฏในผลลัพธ์สุดท้ายของเรา เนื่องจากสตริง f จะใช้เครื่องหมายวงเล็บปีกกาชุดหนึ่งเพื่อแสดงว่าการจัดรูปแบบสตริงจะเกิดขึ้น ดังนั้น เหล็กจัดฟันชุดเดียวในเหล็กดัดของคุณจึงจะปรากฏขึ้น

ความคิดเห็น

เมื่อคุณเขียนสตริง f สตริง f ของคุณไม่ควรมีเครื่องหมายแฮชแท็ก (#) เครื่องหมายนี้แสดงถึงความคิดเห็นใน Python และจะทำให้เกิดข้อผิดพลาดทางไวยากรณ์

หากคุณต้องการใช้แฮชแท็กในสตริง ตรวจสอบให้แน่ใจว่าได้จัดรูปแบบเป็นสตริงแล้ว แทนที่จะเป็นสตริง f นี่คือตัวอย่างการใช้งานจริง:

user_id = "202"
print(f"User ID: #{user_id}")

รหัสของเราส่งคืน:

User ID: #202

เราเพิ่มแฮชแท็กก่อนวงเล็บปีกกา f string เราทำสิ่งนี้เพื่อให้แน่ใจว่าแฮชแท็กของเราจะปรากฏอย่างถูกต้องในสตริงของเรา

ดู Repl.it จากบทช่วยสอนนี้:



บทสรุป

สตริง Python f เป็นเครื่องมือใหม่ที่คุณสามารถใช้ใส่นิพจน์ภายในตัวอักษรสตริงได้

ข้อดีของการใช้สตริง f เหนือตัวเลือกก่อนหน้านั้นมีมากมาย สตริง f ง่ายต่อการอ่าน ทำงานได้ดีแม้ในขณะที่คุณกำลังทำงานกับค่านิยมมากมาย

บทช่วยสอนนี้กล่าวถึงโดยอ้างอิงจากตัวอย่าง การเปรียบเทียบสตริง f กับตัวเลือกการจัดรูปแบบสตริงอื่นๆ และวิธีใช้สตริง f ในโค้ดของคุณ ตอนนี้คุณมีความรู้ที่จำเป็นในการเริ่มทำงานกับ Python f strings อย่างนักพัฒนามืออาชีพแล้ว!

หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Python โปรดดูคู่มือ How to Learn Python