如何回到python的前一行?

时间:2014-11-20 14:23:42

标签: python loops

如何才能使它如果最后一行为真,那么它会回到循环的开头?

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?

2 个答案:

答案 0 :(得分: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!)

你还没有说出代码的意图是什么,但我猜你想在打印匹配值后停止它,在这种情况下你可以这样做:

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

答案 1 :(得分:-2)

这可能适合你。

我还添加了一种方法,因此用户无法输入任何否定的字符串或数字。)

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命令只能在循环中工作,不能在其他地方工作......