TypeError: 지원되지 않는 뺄셈 피연산자 유형
Python에서 뺄셈 연산자는 숫자나 문자열과 같은 호환되는 유형 사이에서만 사용할 수 있습니다. 그런데 정수에서 문자열을 빼려고 하면 오류가 발생합니다.
원본 코드:
<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>
오류:
TypeError: unsupported operand type(s) for -: 'str' and 'int'
설명:
프로그램의 입력인 text와 num은 모두 입력을 사용하여 받은 문자열입니다. 그러나 cat_n_times 함수는 문자열(텍스트)에서 정수(들)를 빼려고 시도하여 유형 오류가 발생합니다.
해결책:
1 . 입력을 정수로 변환:
한 가지 해결책은 int():
<code class="python">num = int(input("How many times: "))</code>
2를 사용하여 문자열 num을 정수로 변환하는 것입니다. 개선된 함수 설계:
또는 더 나은 함수 설계에서는 수동 인덱스 추적 대신 for 루프를 사용합니다.
<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>
이 버전은 함수의 의도를 더 명확하게 전달하고 루프에서 사용하기 전에 num을 정수로 변환하여 오류를 제거합니다.
위 내용은 Python에서 다양한 데이터 유형을 뺄 때 유형 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!