2016-09-18 1 views
0

파이썬 newb 여기 있습니다. 입력을 기반으로 정수 값을 변경하고 코드를 반복하는 if 문을 작성하려고합니다. 불행히도, 두 가지 문제점이있다 :if 문에서 정수 값을 변경하면 작동하지 않습니까? (Python)

  1. 입력을 접수 한 후, 휘도 프린터, 인쇄 값 관계없이 (0으로 설정 -10 +10, 등)를 입력
  2. 의 100 else 문은 이 if 문과 일치하는 값을 입력했는지 여부에 관계없이 인쇄합니다.

내가 뭘 잘못하고 있니?

# -*- coding: utf-8 -*- 

var = 1 
brightness = 100 

while var == 1 : # This constructs an infinite loop 

    print 'Brightness is ', brightness 

    test1 = raw_input('up, down, on or off? ') 

    if test1 == 'up': 
    brightness = brightness + 10 
    print brightness 
    if test1 == 'down': 
    brightness = brightness - 10 
    print brightness 
    if test1 == 'on': 
    brightness = 100 
    print brightness 
    if test1 == 'off': 
    brightness = 0 
    print brightness 
    else: 
    print 'Try again' 

print "Good bye!" 
+0

else ifs를 사용하십시오. 그것은 – Li357

+1

을 통해 떨어지고 있어요. 파이썬 2.7.10에서 잘 작동합니다. 많은 if if 대신'if..elif..else'를 사용하는 것이 좋습니다. –

+0

코드가 실행되지만 # 1과 # 2의 문제가 있습니다. 위에 언급했다. –

답변

1
var = 1 
brightness = 100 

while var == 1 : # This constructs an infinite loop 

print 'Brightness is ', brightness 

test1 = raw_input('up, down, on or off? ') 

if test1 == 'up': 
    brightness = brightness + 10 
    print brightness 
elif test1 == 'down': 
    brightness = brightness - 10 
    print brightness 
elif test1 == 'on': 
    brightness = 100 
    print brightness 
elif test1 == 'off': 
    brightness = 0 
    print brightness 
else: 
    print 'Try again' 

print "Good bye!" 
앤드류 L. 및 Kalpesh Dusane이 대답
+0

엘프가 변경되어 결국 변경되었습니다. 고맙습니다! –

+0

"else 문은 사용자가 if 문과 일치하는 값을 입력해도 관계없이 인쇄됩니다." 이것은 else 문의 역할입니다. if 문이 입력 중 하나와 일치하지 않으면 항상 else로 이동합니다. 그러나 elif else를 사용하면 if 조건에 도달하면 else로 이동하면 안됩니다. –

0

가, 감사합니다!

elif (else if)에 내 if를 교환해야했습니다.

# -*- coding: utf-8 -*- 

var = 1 
brightness = 100 

while var == 1 : # This constructs an infinite loop 

    print 'Brightness is ', brightness 

    test1 = raw_input('up, down, on or off? ') 

    if test1 == 'up': 
    brightness = brightness + 10 
    print brightness 
    elif test1 == 'down': 
    brightness = brightness - 10 
    print brightness 
    elif test1 == 'on': 
    brightness = 100 
    print brightness 
    elif test1 == 'off': 
    brightness = 0 
    print brightness 
    else: 
    print 'Try again' 

print "Good bye!" 

코드가 작동합니다. 감사합니다.

+0

어떤 식 으로든'var'을 수정하지 않으면 같은 효과에 대해'while True'를 사용할 수 있습니다 – Copperfield

관련 문제