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

Mary-Kate Olsen
Lepaskan: 2024-10-19 13:37:29
asal
898 orang telah melayarinya

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

Ralat:

TypeError: unsupported operand type(s) for -: 'str' and 'int'
Salin selepas log masuk

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

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

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!

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!