2014-11-20 2 views
0

어떻게하면 마지막 줄이 맞으면 루프의 처음으로 돌아갈 수 있습니까?파이썬으로 이전 라인으로 돌아가는 방법?

p = int(input("input value of p: ") 
q = int(input("input value of q: ") 
import random 
list(range(-q, q)): 
while p != p + 1: 
    x1 = random.choice(l) 
    x0 = random.choice(l) 
    if((q == x0 * x1) and (-p == x0 + x1)): 
     print(x0, x1) 
    else: 
     if((q != x0 * x1) or (-p != x0 + x1)): 
      #What do i put here to return to the beginning of the loop? 
+4

: 당신은 그냥 할 수있는 경우에 일치하는 값을 인쇄 한 후 정지) – agconti

+1

마지막 문장이'''거짓'''이라면 무엇을하고 싶니? 그것은 suite의 마지막 문이므로 루프 *는 자동으로 맨 위에 *를 반환하고''while while'' 조건을 검사합니다. 아무 것도 할 필요가 없습니다. – wwii

+0

'list (range (-q, q)) :'... 당신은 'l = range (-q, q)'를 의미 했습니까? 현재 구문 오류가 있습니다 – Anentropic

답변

-1

이 방법이 유용 할 수 있습니다. 사용자가 부정적인 임의의 문자열 또는 숫자를 입력 할 수 있도록

은 또한 방법을 추가했습니다.)

l=[] 
while q<=0: 
    try: 
     q=int(input("Enter a number")) 
    except: 
     print("That is not a number!") 
     continue 
while p<=0: 
    try: 
     p=int(input("Enter a number")) 
    except: 
     print("That is not a number!") 
     continue 
    import random 
    list(range(-q, q)) 
    print(l) 
    while p != p + 1: 
     x1 = random.choice(l) 
     x0 = random.choice(l) 
     if((q == x0 * x1) and (-p == x0 + x1)): 
      print(x0, x1) 
     else: 
      if((q != x0 * x1) or (-p != x0 + x1)): 
       continue 

이 루프의 상단으로 돌아 가야한다. continue 명령은 루프에서 작동합니다, 아니 다른 어디 ...

+0

''(q! = x0 * x1) 또는 (-p! = x0 + x1)'''''False'''가 발생하면 어떻게됩니까? – wwii

+0

@wwii 시도와 예외가 효과가 있다고 생각합니까? –

+1

False 일지라도 다시 루프의 시작으로 돌아가서'p! = p + 1' 조건을 검사하고 나머지는 그 조건의 결과를 기반으로합니다 – T90

0

조건 ((q == x0 * x1) and (-p == x0 + x1))가 자동으로 시작

다시 내부의 역 논리 if((q != x0 * x1) or (-p != x0 + x1))을 수립 할 필요가 없습니다 갈 것이다 루프를 충족하지 않는 경우 else 블록의 의미는 else입니다.

while 루프는 while p != p + 1이지만 현재는 p의 값을 변경하지 않으므로 아무 것도 유용하지 않습니다. 반복을 계속하고 싶다면 while True을 할 수 있습니다 (그러나 어딘가에 루프에 break이 있어야합니다!)

코드 의도는 무엇인지 말하지 않았지만 원하는대로 추측하고 있습니다. https://docs.python.org/2/reference/simple_stmts.html#continue [계속] (당신이 찾고있는

import random 

p = int(input("input value of p: ") 
q = int(input("input value of q: ") 
l = range(-q, q) 

while True: 
    x1 = random.choice(l) 
    x0 = random.choice(l) 
    if ((q == x0 * x1) and (-p == x0 + x1)): 
     print(x0, x1) 
     break 
관련 문제