如何返回到python中的前一行?

tvokkenx  于 2023-03-28  发布在  Python
关注(0)|答案(2)|浏览(169)

如果最后一行为true,那么它将返回到循环的开始?

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?
hc2pp10m

hc2pp10m1#

如果不满足条件((q == x0 * x1) and (-p == x0 + x1)),则循环将自动返回到开始
不需要在else块内用公式表示逆逻辑if((q != x0 * x1) or (-p != x0 + x1)),因为这就是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
h7appiyu

h7appiyu2#

这可能对你有用。
我还添加了一种方法,使用户无法输入任何负数字符串或数字。)

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

相关问题