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

Mary-Kate Olsen
Lepaskan: 2024-10-19 13:37:01
asal
795 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!