당신은 두 가지 작업을 수행해야합니다
이 줄에 대괄호를 제거
numbers = [numbers.split(',')]
그렇지 않으면, str.split
에 의해 반환 된 목록이 다른 목록의 내부에 배치됩니다.
str.split
에 의해 반환 된 문자열 목록을 정수 목록으로 변환하십시오. 이것은 map
및 int
수행 할 수 있습니다 :
Traceback (most recent call last):
File ".\t.py", line 3, in <module>
odds = [x for x in numbers if x%2==1]
TypeError: not all arguments converted during string formatting
:
numbers = map(int, numbers.split(','))
그렇지 않으면, 다음 줄에 %
이 오류가 발생합니다 문자열 형식으로 해석됩니다 아래는 스크립트의 고정 된 버전입니다.
numbers = raw_input('Enter 10 integers separated by comma ')
numbers = map(int, numbers.split(','))
odds = [x for x in numbers if x%2==1]
# The Python standard for indentation is 4 spaces
if not odds:
print "no odd number was entered"
else:
print max(odds)
데모 :
>>> numbers = raw_input('Enter 10 integers separated by comma ')
Enter 10 integers separated by comma 1,2,3,4,5,6,7,8,9,10
>>> numbers = map(int, numbers.split(','))
>>> odds = [x for x in numbers if x%2==1]
>>> if not odds:
... print "no odd number was entered"
... else:
... print max(odds)
...
9
>>>