2016-10-25 1 views
-7

그래서 저는 파이썬을 스스로 배우기 시작했습니다.하지만 변수와 그 결과에 작은 문제가 있습니까? 내가 1을 누른 다음 입력 할 때조건의 파이썬 결과가 아무 것도하지 않습니다.

choice = input() 

if (random.randint(0,100) > 20 and choice == (1)): 
    print("Odkopnul jsi krysu a ta sebou") 
    print("prastila o zed az omdlela") 

elif random.randint(0,100) < 20: 
    print("I pres tvoje cukani ti") 
    print("krysa ukousla kus palce!") 

문제는, 그것은 아무것도하지 않는다 : O를 내가 그것을 필요 난수 (20) 입력보다 큰 경우 1이었다 (당신을 위해, 원 한 가지를 인쇄 특급.) 또는 임의의 숫자는 (당신은 특급에 대한 손실.)

이 모든 조언을 주셔서 감사합니다 내가

+2

'input'은 문자열을 반환합니다. 비교를 위해 정수로 변환해야합니다 – Li357

+0

random.randint (0,100)가 20을 반환하면 어떻게됩니까? –

+0

입력을 int - int (input()) – tinySandy

답변

1

이 코드에 몇 가지 문제가 있음을 이해할 다른 일을 인쇄보다 작은 20 인 경우.

  1. 은 문자열을 반환하지만 정수와 비교하려고합니다. choice = int(input())

  2. random.randint(0,100)을 두 번 호출하므로 호출 할 때마다 다른 값이 반환됩니다. 대신 함수 상단에 한 번만 호출하여이 값을 두 번 사용해야합니다.

  3. 임의 변수를 20보다 작거나 20보다 큰지 비교해 보았지만 20과 같은 경우는 고려하지 않았습니다.

  4. 괄호 안에 (1)을 입력 할 필요가 없습니다. 이러한 실수를 수정

는 최종 코드는 아무것도 인쇄되지 않습니다 경우가 있기 때문에이 프로그램의 논리가 아직 완전히, 이해가되지 않는

choice = int(input()) 
num = random.randint(0,100) 

if (num >= 20 and choice == 1): 
    print("Odkopnul jsi krysu a ta sebou") 
    print("prastila o zed az omdlela") 

elif num < 20: 
    print("I pres tvoje cukani ti") 
    print("krysa ukousla kus palce!") 

참고가된다. 그러나 이것은보다 분명한 오류를 수정하고, 파이썬 튜토리얼을 따라 가면서 기본에 대해 더 자세히 배우도록 권장합니다.

+0

1,2 감사합니다. 나는 그것을 몰랐습니다. 3 예, 이것에 대해 알고 xd의 이전 버전을 게시했습니다 4 Ok 감사합니다. 대단히 감사합니다. 계속 진행하겠습니다.) – 4kocour4

+0

문제가 없으면 확인을 클릭하여 답변을 수락하십시오. 너에게 유용했다. –