2014-03-07 3 views

답변

3

(더 확률이 후 이렇게 말하는 성명을 반환하지 않는 경우 나, 입력 10 정수로 사용자를 얻으려고 노력하고 가장 큰 홀수를 반환하고있어) str 인스턴스의 목록입니다 . numbers = [int(n) for n in numbers.split(',')]을 시도해보십시오.

1

당신은 두 가지 작업을 수행해야합니다

  1. 이 줄에 대괄호를 제거

    numbers = [numbers.split(',')] 
    

    그렇지 않으면, str.split에 의해 반환 된 목록이 다른 목록의 내부에 배치됩니다.

  2. str.split에 의해 반환 된 문자열 목록을 정수 목록으로 변환하십시오. 이것은 mapint 수행 할 수 있습니다 :

    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 
>>> 
관련 문제