while 루프를 사용하여 주어진 사용자 입력까지 모든 숫자를 인쇄하고 싶습니다. 예 : 다음을 입력하십시오 : 5 ==> 1 2 3 4 5 그러나 아래 프로그램은 계속 반복됩니다.파이썬 문자열과 정수 비교
user = str(input("Enter : "))
i = 1
while i < user:
print(i)
i = i + 1
while 루프를 사용하여 주어진 사용자 입력까지 모든 숫자를 인쇄하고 싶습니다. 예 : 다음을 입력하십시오 : 5 ==> 1 2 3 4 5 그러나 아래 프로그램은 계속 반복됩니다.파이썬 문자열과 정수 비교
user = str(input("Enter : "))
i = 1
while i < user:
print(i)
i = i + 1
ummm while i < int(user):
?
대신을 시도해보십시오
try:
user = int(raw_input('Enter: ')) # Cannot compare a string with an integer.
except ValueError:
print('Input should be an integer!')
i = 1
while True:
i += 1
if i > user:
break
print(i)
참고 : 당신의 코드에서, 우리는 명시 적으로 아직도 확실히 당신이 원하는대로 작동하지 않을 정수로 input
를 선언하더라도. 이는 코드에서 while
루프가 user
(조건이 ...보다 작아서 user
미만인 경우)과 동일하면 루프가 중지되고 이에 따라 수정되었으므로 i
마지막 출력 값 user
동일 할 것이라는 것을 의미 user
보다 큰 점
예 이전 출력 user = 5
여기서 :.
1
2
3
4
새로운 코드 :
1
2
3
4
5
그것은 당신이 while
루프를 사용하여 설정되지 않은 경우, 여기에 for
루프를 사용하지만 더 나은 : 사용자가 입력 무엇을 평가하기 위해 노력할 것입니다 파이썬 2.x에서의
for i in range(1, user+1):
print(i)
당신이 무한 루프를 얻고있는 이유는 다음과 같습니다 또한 for
루프 코드를 단순화 할 수 있습니다. 당신은
user = int(input("Enter: "))
가 작동해야하는 변수의 동일한 유형을 비교해야
in python2 .7 입력은 문자열의 평가 된 버전을 돌려 준다. (이 경우에는 int ...) ,,, OP에 맞춰진 Im은 문자열로 변환 할 몇 가지 이유가있다. –
은 ((입력 "을 입력 :"))'할 사용자 = INT 더 좋을 것'대신 – lejlot
@lejlot을 : 파이썬 2 대신 int (raw_input ("Enter :"))'를 사용하십시오. 'input()'은 이미 입력에서'eval()'을 호출하기 때문에 어떤 경우에도 숫자로만 구성된 입력을 위해 정수를 반환합니다. –
나는 루프에서보다는 사용자를 int로 한 번 변환하는 것이 더 낫다는 사실을 언급한다. – lejlot