2013-05-01 1 views
-1

사람이 좀 도와 주 시겠어요 동안, 한 순간에 대한 사실 확인?경우 루프

이것은 모두 루프에서 발생하므로 Input1이 항상 호출됩니다. Input1이 True로 전환되면 Output1을 껐다가 켜고 전등 스위치처럼 끄기를 원합니다. 이 켜기, 끄기, 나는 Input1이 여전히 호출되는 동안 한 번만 발생하려고합니다. 그래서 나중에 Input1이 False로 돌아가고 그 후에 True가되면 'switch'가있는 Output1에 영향을 미치지 않습니다. 그게 도움이 되었길 바래요? ,

on = True 
off = False 
if Input1 == True: 
    Output1 = on 
    break 
else: 
    Output1 = off 

을 출력 1이 진정한 가치를 얻을 것이다되면, 이렇게 :

#Input1 is a boolean 
on = True 
off = False 
count = 0 
if Input1 == True and count == 0: 
    Output1 = on 
    count = 1 
else: 
    Output1 = off 
+6

주를 생성합니다. 'if Input1 :'과'Input1'을'bool'으로 평가하면됩니다. –

+2

"잠시만"True "로 설정하면됩니다. 이거 루프인가요? 더 많은 코드를 게시하거나 더 많은 컨텍스트를 제공해야한다고 생각합니다. –

+0

@JonathonReinhart는 강력하게 동의하지 않습니다. 특히 Python과 같은 동적 언어를 말할 때 그렇습니다. 'if Input1 == True'의 문장을 가지고 있다면 - 나는 명시 적으로'Input1'이 부울 변수라는 것을 확신합니다. 'Input1'가있는 경우 -'Input1' 부울 (예를 들어, 문자열),'부울이 ('')이 아닌 경우 때문에 지옥입니다 == FALSE '하지만'부울 ('ABC ') == TRUE'). 항상 명시 적 검사를 수행하십시오. –

답변

1

정확하게 이해했다면, 루프의 첫 번째 반복에서 후속 루프에서 활성화되지 않은 코드 섹션을 실행하고 싶습니다. 다음은 (는 중복으로) 내가 대신 Output1있는의 count을 비교하는 게 좋을 것하지만 입력 1/출력 1의 아이디어를 다음과 같습니다. `중복 :

count = 0 
Input1 = True 
while True: 
    if Input1: 
     print("Doing Input1 stuff...") 
     count = count + 1 
     if count == 1: #if the count is 1 it is the FIRST iteration of the loop so we switch on! 
      Output1 = True 
      print("Output 1 switched ON") 
    if Output1: 
     print("Out-putted") 
     Output1 = False #switch if OFF, and since count will never = 1 again, this code block won't activate again. 
     print("Output 2 switched OFF") 
    #break the loop sometime (this is just for demonstration) 
    if count == 4: 
     print("I've done 4 iterations") 
     break; 

는`입력 1 == 진정한 경우 것으로

>>> 
Doing Input1 stuff... 
Output 1 switched ON 
Out-putted 
Output 2 switched OFF 
Doing Input1 stuff... 
Doing Input1 stuff... 
Doing Input1 stuff... 
I've done 4 iterations 
-1

또한이 같은 break 문을 사용할 수 있습니다

#Input1 is a boolean 
on = True 
off = False 
if Input1 == True: 
    Output1 = on 
    #Only turn on for one moment 
    #then turn off right away even while Input1 continues to be True 
else: 
    Output1 = off 

는 내가 같은 것을 할 수 있다고 생각 그것은 동일하게 유지 될 것입니다. 그것은 진술을 깨고 다른 반복을 위해 가지 않을 것입니다.

+0

코드가 루프에 있음을 어디서 보았습니까? –