Rumah >pembangunan bahagian belakang >Tutorial Python >Adakah Python Mempunyai Interpolasi Rentetan Seperti Ruby?

Adakah Python Mempunyai Interpolasi Rentetan Seperti Ruby?

Susan Sarandon
Susan Sarandonasal
2024-11-30 04:27:15895semak imbas

Does Python Have String Interpolation Like Ruby's?

Adakah Python Menawarkan Interpolasi Rentetan Setanding dengan Ruby?

Dalam Ruby, interpolasi rentetan membenarkan pemasukan ungkapan ke dalam rentetan, meningkatkan kebolehbacaan kod. Contoh interpolasi rentetan Ruby:

name = "Spongebob Squarepants"
puts "Who lives in a Pineapple under the sea? \n#{name}."

Untuk pembangun Python, gabungan rentetan yang setara mungkin kelihatan bertele-tele.

Interpolasi Rentetan Python dalam Python 3.6 dan Kemudian

Syukurlah, Python 3.6 memperkenalkan interpolasi rentetan literal yang serupa dengannya Ruby's. Dalam Python 3.6 , "f-strings" membolehkan kemasukan ungkapan:

name = "Spongebob Squarepants"
print(f"Who lives in a Pineapple under the sea? {name}.")

Alternatif Pra-Python 3.6

Sebelum Python 3.6, pertimbangkan pilihan ini:

  • % Operator: Gunakan operator % untuk interpolasi rentetan. Operan pertama ialah rentetan yang akan diinterpolasi, dan yang kedua boleh termasuk "pemetaan" yang memetakan nama medan kepada nilai. Pemetaan boleh dibuat menggunakan locals().
name = "Spongebob Squarepants"
print("Who lives in a Pineapple under the sea? %(name)s." % locals())
  • .format() Kaedah: Gunakan kaedah .format() untuk menginterpolasi rentetan:
name = "Spongebob Squarepants"
print("Who lives in a Pineapple under the sea? {name!s}.".format(**locals()))
  • rentetan.Kelas Templat: Gunakan rentetan.Kelas templat untuk interpolasi rentetan:
tmpl = string.Template("Who lives in a Pineapple under the sea? $name.")
print(tmpl.substitute(name="Spongebob Squarepants"))

Atas ialah kandungan terperinci Adakah Python Mempunyai Interpolasi Rentetan Seperti Ruby?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn