Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menyelesaikan \'TypeError: Jenis Operand Tidak Disokong untuk -: \'str\' dan \'int\'\' Ralat?

Bagaimana untuk Menyelesaikan \'TypeError: Jenis Operand Tidak Disokong untuk -: \'str\' dan \'int\'\' Ralat?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-19 13:37:01875semak imbas

How to Resolve

"Menyelesaikan Ralat Jenis: Jenis Operand Tidak Disokong untuk -: 'str' dan 'int'"

Apabila cuba mengekod dalam Python, tidak jarang terdapat ralat seperti ralat "TypeError: jenis operan yang tidak disokong untuk -: 'str' dan 'int'". Ralat ini biasanya berlaku apabila cuba melakukan operasi matematik pada jenis data yang berbeza, seperti menolak integer daripada rentetan.

Untuk memahami ralat ini, mari kita periksa kod yang membawa kepadanya:

<code class="python">def cat_n_times(s, n):
    while s != 0:
        print(n)
        s = s - 1

text = input("What would you like the computer to repeat back to you: ")
num = input("How many times: ")

cat_n_times(num, text)</code>

Isu di sini terletak pada fungsi input, yang mengembalikan rentetan untuk kedua-dua teks dan nombor. Semasa kod cuba menolak integer (s - 1) daripada rentetan (bilangan), mengakibatkan ralat.

Penyelesaian 1: Tukar Input

Satu penyelesaian adalah untuk menukar input daripada rentetan kepada integer sebelum melakukan operasi matematik. Ini boleh dilakukan menggunakan fungsi int():

<code class="python">num = int(input("How many times: "))</code>

Dengan menukar nombor kepada integer, kami boleh memastikan keserasian untuk operasi matematik dengan s.

Penyelesaian 2: Gunakan Lelaran Alternatif

Daripada menjejaki indeks secara manual, pertimbangkan untuk menggunakan pendekatan yang lebih Pythonic untuk lelaran:

<code class="python">def cat_n_times(s, n):
    for i in range(n):
        print(s)

text = input("What would you like the computer to repeat back to you: ")
num = int(input("How many times: "))

cat_n_times(text, num)</code>

Di sini, gelung for dengan julat(n) mengendalikan lelaran dengan berkesan.

Pertimbangan API

Ralat juga menyerlahkan potensi isu dengan reka bentuk API. Mungkin lebih intuitif untuk teks menjadi rentetan dan angka untuk mewakili bilangan kali. Dalam kes ini, API boleh diubah suai dengan sewajarnya.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan \'TypeError: Jenis Operand Tidak Disokong untuk -: \'str\' dan \'int\'\' Ralat?. 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