Bagaimana untuk menyelesaikan ralat pemformatan rentetan Python?

WBOY
Lepaskan: 2023-06-24 23:46:52
asal
2071 orang telah melayarinya

Python ialah bahasa pengaturcaraan yang digunakan secara meluas, dan pemformatan rentetan ialah salah satu ciri yang sangat asas dan penting. Walau bagaimanapun, semasa proses pembangunan, kadangkala kami menghadapi beberapa ralat pemformatan rentetan, yang mungkin datang daripada pelbagai faktor seperti penggunaan teg kami yang tidak betul dan ralat tatabahasa. Artikel ini akan membincangkan cara menyelesaikan ralat pemformatan rentetan Python.

1. Fahami kaedah pemformatan rentetan Python

Dalam Python, terdapat tiga cara untuk memformat rentetan: kaedah tanda peratus (%), kaedah fungsi string.format() dan mod rentetan f- dalam Python3. Antaranya, dua kaedah pertama adalah yang paling biasa digunakan, manakala f-string ialah kaedah baharu yang ditambah dalam versi Python 3.6, yang agak baharu.

1. Kaedah tanda peratus (%)

Kaedah tanda peratus (%) ialah kaedah pemformatan rentetan yang paling awal dan paling klasik dalam Python Penggunaannya adalah seperti berikut:

name = 'Tom'
age = 18
score = 95.8
print('%s is %d years old, and his score is %.1f.' % (name, age, score))
Salin selepas log masuk
Salin selepas log masuk

Hasil keluaran:

Tom is 18 years old, and his score is 95.8.
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

2 () function method

String.format() function method ialah kaedah pemformatan rentetan kedua dalam Python Penggunaannya adalah seperti berikut:

name = 'Tom'
age = 18
score = 95.8
print('{} is {} years old, and his score is {:.1f}.'.format(name, age, score))
Salin selepas log masuk

Hasil keluaran:

Tom is 18 years old, and his score is 95.8.
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

3.f-string Method

Python 3.6 versi telah ditambah. kaedah f-string. Kaedah penggunaan adalah seperti berikut:

name = 'Tom'
age = 18
score = 95.8
print(f'{name} is {age} years old, and his score is {score:.1f}.')
Salin selepas log masuk

Hasil keluaran:

Tom is 18 years old, and his score is 95.8.
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

2 ralat dan penyelesaian biasa pemformatan rentetan

1 sangat penting. Teg biasa termasuk %s, %d, %f, dsb. Antaranya, %s mewakili rentetan, %d mewakili integer dan %f mewakili nombor titik terapung.

Jika salah guna marker, ralat akan berlaku. Contohnya:

name = 'Tom'
age = 18
score = 95.8
print('%s is %d years old, and his score is %d.' % (name, age, score))
Salin selepas log masuk

Hasil keluaran:

TypeError: %d format: a number is required, not float
Salin selepas log masuk

Ini kerana skor menggunakan penanda %d, tetapi skor ialah nombor titik terapung dan penanda %f harus digunakan. Oleh itu, kita harus menukar kod kepada:

name = 'Tom'
age = 18
score = 95.8
print('%s is %d years old, and his score is %.1f.' % (name, age, score))
Salin selepas log masuk
Salin selepas log masuk

Hasil keluaran:

Tom is 18 years old, and his score is 95.8.
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kita juga boleh menggunakan fungsi string.format() atau kaedah f-string untuk mengelakkan ralat penggunaan tag.

2. Parameter tidak sepadan

Apabila memformat rentetan, anda perlu memastikan bahawa bilangan parameter yang diluluskan sepadan dengan bilangan penanda yang sepadan. Jika terdapat terlalu banyak atau terlalu sedikit parameter, ralat akan berlaku. Sebagai contoh:

name = 'Tom'
print('%s is %d years old.' % (name))
Salin selepas log masuk

Hasil keluaran:

TypeError: not enough arguments for format string
Salin selepas log masuk

Ini kerana kita hanya melepasi satu parameter, tetapi terdapat dua penanda, kod tersebut hendaklah ditukar kepada:

name = 'Tom'
age = 18
print('%s is %d years old.' % (name, age))
Salin selepas log masuk

Hasil keluaran:

Tom is 18 years old.
Salin selepas log masuk

3. Ralat sintaks

Ralat adalah salah satu kesilapan biasa dalam Python. Terutama dalam pemformatan rentetan, ralat sintaks boleh berlaku dengan mudah kerana penggunaan simbol yang salah seperti kurungan dan tanda petikan. Contohnya:

print('My name is {}. I'm {} years old.' .format('Tom', 18))
Salin selepas log masuk

Hasil keluaran:

  File "<ipython-input-5-24fc64aa88e2>", line 1
    print('My name is {}. I'm {} years old.' .format('Tom', 18))
                            ^
SyntaxError: invalid syntax
Salin selepas log masuk

Ini kerana dua petikan tunggal digunakan dalam rentetan di atas, mengakibatkan ralat penghuraian. Kod harus ditukar kepada:

print("My name is {}. I'm {} years old." .format('Tom', 18))
Salin selepas log masuk

Hasil keluaran:

My name is Tom. I'm 18 years old.
Salin selepas log masuk

IV Ringkasan

Pemformatan rentetan ialah ciri yang sangat asas dan penting dalam Python Mengetahui cara menyelesaikan ralat pemformatan rentetan Python boleh meningkatkan kualiti kod kami. Apabila menggunakan pemformatan rentetan, kita perlu memahami kaedah pemformatan rentetan Python dan mengelakkan jenis ralat biasa, seperti penggunaan penanda yang salah, ketidakpadanan parameter dan ralat sintaks. Jika anda menghadapi ralat, anda perlu menyemak kod dengan teliti untuk mencari ralat dan membetulkannya.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat pemformatan rentetan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan