2010-02-19 5 views
0

연습 문제로, 사용자로부터 다섯 개의 숫자를 가져오고 while 루프를 사용하여 다섯 개의 숫자의 합계를 반환하려고합니다. 나는 5 개의 숫자를 모을 수 있었지만 합계는 내 코드에 의해 제공되지 않았다. (나는 숫자를 얻지 만 항상 마지막 숫자의 두 배이다.) 문제는 + =를 사용하는 것입니다.사용자 입력에서 5 개의 숫자를 어떻게 추가합니까?

x = 0 
while x < 5: 
    x += 1 
    s = (int(raw_input("Enter a number: "))) 
    s += s 
print s 
+2

's의 + = s'가 홀수 일 할 수 있었다. 그 성명서는 어떻게 생각하니? 해당 진술에 대한 설명으로 질문을 업데이트하십시오. –

답변

8

이 값은 더 좋을 것입니다.

x = 0 
s = 0 
while x < 5: 
    x += 1 
    s += (int(raw_input("Enter a number: "))) 
print s 

결과 중 하나를 모든 결과의 합계에 넣었으며 이전 결과를 잃어 버렸습니다.

11

Gruszczy는 이미 주요 문제를 해결했지만 여기에는 코드와 관련된 몇 가지 조언이 있습니다.

첫째,이 for 루프를 수행보다는 while에 반복을 추적하는 것이 더 쉽습니다 :

s = 0 
for i in range(5): 
    s += int(raw_input('Enter a number: ')) 

둘째, 당신은 사용하여 단순화 할 수 내장 sum 기능 :

s = sum(int(raw_input('Enter a number: ')) for i in range(5)) 

셋째, 사용자가 잘못된 입력을 입력하면 위의 두 가지 모두 실패합니다. 당신이 5 개 유효 숫자 강제 할 경우

s = 0 
for i in range(5): 
    try: 
     s += int(raw_input('Enter a number: ')) 
    except ValueError: 
     print 'Invalid input. Counting as a zero.' 

또는 : 당신이 알아서하는 try 블록을 추가해야 다음 결과를 인쇄 USER_INPUT &에 의해 STR 또는 INT 추가

round = 0 
s = 0 
while round < 5: 
    try: 
     s += int(raw_input('Enter a number: ')) 
    except ValueError: 
     print 'Invalid input.' 
    else: 
     round += 1 
+1

기타 Pythonic. – smci

0

을 - Adding 2 or more no's from users input ABV 링크

'''Two numeric inputs, explicit sum''' 

x = int(input("Enter an integer: ")) 
y = int(input("Enter another integer: ")) 
sum = x+y 
sentence = 'The sum of {} and {} is {}.'.format(x, y, sum) 
print(sentence) 
에서

예 0

0
x = 0 
s = 0 
    while x < 5: 
     x += 1 
     s += (int(raw_input("Enter a number: "))) 
print s 
0

이 또한

print ("enter input number : ") 

input1 = int(raw_input()) 

sum1 = 0 

for y in range(0,input1+1): 
     sum1 = sum1 + y 
print ("the sum is " + str(sum1)) 
관련 문제