저는 파이썬으로 코딩하는 것에 익숙하며 숫자 입력을 요구하는 루프를 작성하려고합니다. 사용자가 입력 할 때까지 읽습니다. "done"을 입력하면 루프를 빠져 나와 변수 인 number, count 및 average가 인쇄됩니다. (목록에 아무것도 저장하려고하지 않음)'done'이 입력 될 때까지 입력/루프를 try/except로 사용하는 루프
또한 "유효하지 않은"내용을 인쇄하고 사용자가 정수가 아닌 항목을 입력 한 경우 루프를 계속 진행하기를 원합니다.
불행히도 "유효하지 않은 입력"을 반환하고 "완료"를 입력해도 루핑을 유지합니다. 내가 도대체 뭘 잘못하고있는 겁니까? 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?
number = 0
count = 0
avg = 0
inp = 0
while True:
try:
inp = int(raw_input('Enter a number: '))
if inp is 'done':
number = number + inp
count = count + 1
avg = float(number/count)
break
except:
print 'Invalid input'
print number
print count
print float(avg)
당신은'INT (뭔가)'지금'동일 할 수있다 '방법 done''에 대한 몇 가지 생각을 주어진 적이 ????? 그리고 기적적으로''inp''가''done''이된다면,'number = number + inp'에 의해 무엇을 달성하기를 희망 했습니까? –
제외 : 특정 예외를 포착하지 않고'except'를 사용하면 코드를 디버그하기가 더 어려워 질 수 있습니다. – bernie
감사합니다 barak, 어떤 이유로 int() 부분이 너무 많이 내 마음을 교차하지 않았다. 하지만 "완료"를 inp에 할당 할 수 있도록 그 부분을 망가 뜨리지 않으면 inp를 사용하여 숫자에 추가 한 다음 해당 값을 number에 할당하여 나중에 프로그램이 숫자의 합계를 인쇄하도록했습니다. 'done'으로 루프를 깨뜨린 후 루프의 반복을 통해 입력되었습니다. 대신 if 문 본문의 정수로 사용자 입력을 변환해야합니까? – RTheAwesome