在While循环中创建一个stop

2024-06-11 17:41:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个代码,该代码应该使用while循环来确定用户输入的数字是否与变量secret_number=777相同。 以下准则是:

将要求用户输入一个整数

将使用while循环

将检查用户输入的数字是否与魔术师拾取的数字相同。如果用户选择的号码与魔术师的秘密号码不同,用户应看到消息“哈哈!你被卡在我的循环中了!”并提示再次输入号码

如果用户输入的数字与魔术师选择的数字匹配,则数字应打印到屏幕上,魔术师应说:“干得好,麻瓜!你现在自由了。”

如果你还有一些关于如何使用while循环的技巧,那将非常有用。谢谢大家!


Tags: 代码用户消息numbersecret屏幕检查用户数字
3条回答

可以使用while(true)创建while循环。 在内部,设置if/else以比较输入值和密码。如果是真的,请打印(“干得好,麻瓜!你现在自由了。”)并中断。除非,打印(“哈哈!你被困在我的循环中了”)并继续

下面是如何做到的:

secret_number = 777

n = int(input("Enter an integer number: "))

if n != secret_num: # If statement to chack if the numbers match
    print("Ha ha! You're stuck in my loop!")
    while True:
        input("Enter an integer number: ") # Loop never ends...

print("Well done, muggle! You are free now.") # If the program made it here, that means the user's number matched

输出:

Enter an integer number: 7
Ha ha! You're stuck in my loop!
Enter an integer number: 2
Enter an integer number: 2
Enter an integer number: 3
Enter an integer number: 4
Enter an integer number: 56
Enter an integer number: 789
Enter an integer number:
Enter an integer number: 8765
Enter an integer number:
...

第二轮:

Enter an integer number: 777
Well done, muggle! You are free now.
>>> 

您可以使用break从循环中转义

例如:

secret_number = 777

while True:
    number = int(input("Enter an integer: "))    
    if number == secret_number:
        break
    print("Ha ha! You're stuck in my loop!")

print("Well done, muggle! You are free now.")

如果可能的话,为了使代码更易于理解,最好将条件放在while语句本身中,而不是在其他地方中断循环。然而,对于这个问题,实现这一点所需的代码可能需要这样的东西,与接受使用break的需要相比,对代码进行必要的重构可能是不值得的:

def get_number():
    return int(input("Enter an integer: "))

secret_number = 777

number = get_number()
while number != secret_number:
    print("Ha ha! You're stuck in my loop!")
    number = get_number()      

print("Well done, muggle! You are free now.")

但是,在python 3.8中,“walrus运算符”(:=)可以有效地简化结构,同时避免使用break,该运算符允许同时将值分配给变量并在表达式中使用:

secret_number = 777

while (number := int(input("Enter an integer: "))) != secret_number:
    print("Ha ha! You're stuck in my loop!")

print("Well done, muggle! You are free now.")

当然,如果您对存储值不感兴趣,那么您可以省略变量number的使用,这样就可以在不需要:=的情况下使用类似的结构

secret_number = 777

while int(input("Enter an integer: ")) != secret_number:
    print("Ha ha! You're stuck in my loop!")

print("Well done, muggle! You are free now.")

相关问题 更多 >