Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyelesaikan Ralat Jenis Apabila Menolak Jenis Data Berbeza dalam Python?

Bagaimana untuk Menyelesaikan Ralat Jenis Apabila Menolak Jenis Data Berbeza dalam Python?

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

How to Resolve Type Errors When Subtracting Different Data Types in Python?

TypeError: Jenis Operand Tidak Disokong untuk Penolakan

Dalam Python, operator penolakan hanya boleh digunakan antara jenis yang serasi, seperti nombor atau rentetan. Walau bagaimanapun, ralat berlaku apabila cuba menolak rentetan daripada integer.

Kod Asal:

<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>

Ralat:

TypeError: unsupported operand type(s) for -: 'str' and 'int'

Penjelasan:

Input dalam atur cara, teks dan nombor, adalah kedua-dua rentetan kerana ia diterima menggunakan input. Walau bagaimanapun, fungsi cat_n_times cuba untuk menolak integer (s) daripada rentetan (teks), mengakibatkan ralat jenis.

Penyelesaian:

1 . Tukar Input kepada Integer:

Satu penyelesaian ialah menukar nombor rentetan kepada integer menggunakan int():

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

2. Reka Bentuk Fungsi yang Diperbaiki:

Sebagai alternatif, reka bentuk fungsi yang lebih baik akan menggunakan gelung for dan bukannya penjejakan indeks manual:

<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>

Versi ini lebih jelas menyampaikan maksud fungsi dan menghapuskan ralat dengan menukar num kepada integer sebelum menggunakannya dalam gelung.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Jenis Apabila Menolak Jenis Data Berbeza dalam Python?. 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