คำถามติดแท็ก f-string

16
การจัดรูปแบบสตริง:% กับ. format
Python 2.6 แนะนำstr.format()วิธีการที่มีไวยากรณ์แตกต่างกันเล็กน้อยจาก%ผู้ให้บริการที่มีอยู่ ไหนดีกว่าและสำหรับสถานการณ์อะไร ต่อไปนี้ใช้แต่ละวิธีและมีผลลัพธ์เหมือนกันดังนั้นความแตกต่างคืออะไร #!/usr/bin/python sub1 = "python string!" sub2 = "an arg" a = "i am a %s" % sub1 b = "i am a {0}".format(sub1) c = "with %(kwarg)s!" % {'kwarg':sub2} d = "with {kwarg}!".format(kwarg=sub2) print a # "i am a python string!" print b # "i …

6
ตัวเลขคงที่หลังทศนิยมด้วย f- สตริง
มีวิธีง่าย ๆ ในการใช้ P-f-strings เพื่อกำหนดจำนวนหลักหลังจุดทศนิยมหรือไม่? (เฉพาะสตริง f ไม่ใช่ตัวเลือกการจัดรูปแบบสตริงอื่น ๆ เช่น. format หรือ%) ตัวอย่างเช่นสมมติว่าฉันต้องการแสดงตัวเลข 2 หลักหลังจุดทศนิยม ฉันจะทำอย่างไร สมมุติว่า a = 10.1234

4
จะใช้ newline '\ n' ใน f-string เพื่อจัดรูปแบบเอาต์พุตใน Python 3.6 ได้อย่างไร
ฉันต้องการทราบวิธีจัดรูปแบบเคสนี้ด้วยวิธี Pythonic ด้วย f-strings: names = ['Adam', 'Bob', 'Cyril'] text = f"Winners are:\n{'\n'.join(names)}" print(text) ปัญหาคือ'\'ไม่สามารถใช้ภายใน{...}ส่วนนิพจน์ของ f-string ผลลัพธ์ที่คาดหวัง: Winners are: Adam Bob Cyril

1
เหตุใด f '{{{74}}}' จึงเหมือนกับ f '{{74}}' ด้วย f-Strings
f-Stringsพร้อมใช้งานจาก Python 3.6 และมีประโยชน์มากสำหรับการจัดรูปแบบสตริง: >>> n='you' >>> f'hello {n}, how are you?' 'hello you, how are you?' อ่านเพิ่มเติมเกี่ยวกับพวกเขาในหลาม 3 F-Strings: ดีขึ้น String การจัดรูปแบบไวยากรณ์ (คู่มือ) ฉันพบรูปแบบที่น่าสนใจ: โปรดทราบว่าการใช้การจัดฟันแบบสามครั้งจะส่งผลให้มีการจัดฟันเพียงครั้งเดียวในสตริงของคุณ: >>> f"{{{74}}}" '{74}' อย่างไรก็ตามคุณสามารถรับเครื่องมือจัดฟันเพิ่มเติมเพื่อแสดงถ้าคุณใช้เครื่องมือจัดฟันมากกว่าสามรายการ: >>> f"{{{{74}}}}" '{{74}}' และนี่คือกรณีที่: >>> f'{74}' '74' >>> f'{{74}}' '{74}' ตอนนี้ถ้าเราผ่านสอง{ถึงสามผลลัพธ์ก็จะเหมือนกัน: >>> f'{{{74}}}' '{74}' # same as f'{{74}}' ! ดังนั้นเราต้องการมากถึง …

10
วิธีการเลื่อน / เลื่อนการประเมิน f-strings?
ฉันใช้สตริงเทมเพลตเพื่อสร้างไฟล์บางไฟล์และฉันชอบความกระชับของ f-strings ใหม่เพื่อจุดประสงค์นี้เพื่อลดรหัสเทมเพลตก่อนหน้าของฉันจากสิ่งนี้: template_a = "The current name is {name}" names = ["foo", "bar"] for name in names: print (template_a.format(**locals())) ตอนนี้ฉันทำได้แล้วโดยแทนที่ตัวแปรโดยตรง: names = ["foo", "bar"] for name in names: print (f"The current name is {name}") อย่างไรก็ตามบางครั้งมันก็สมเหตุสมผลที่จะกำหนดเทมเพลตไว้ที่อื่น - สูงขึ้นในโค้ดหรือนำเข้าจากไฟล์หรือบางสิ่ง ซึ่งหมายความว่าเทมเพลตเป็นสตริงแบบคงที่ที่มีแท็กการจัดรูปแบบอยู่ในนั้น จะต้องมีบางอย่างเกิดขึ้นกับสตริงเพื่อบอกให้ล่ามแปลความหมายของสตริงเป็นสตริง f ใหม่ แต่ฉันไม่รู้ว่ามีสิ่งนั้นหรือไม่ มีวิธีใดบ้างในการนำสตริงเข้ามาและตีความว่าเป็น f-string เพื่อหลีกเลี่ยงการใช้การ.format(**locals())โทร? ตามหลักการแล้วฉันต้องการโค้ดแบบนี้ ... ( magic_fstring_functionส่วนที่ฉันไม่เข้าใจอยู่ที่ไหน): …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.