Python3:如何在while循环中检查需要整数的字符串
在Python3中:如何检查while循环中需要整数的字符串 这是我目前的代码:我想用“退出”或“q”替换sentinel值“0”。我该怎么做Python3:如何在while循环中检查需要整数的字符串,python,string,while-loop,integer,sentinel,Python,String,While Loop,Integer,Sentinel,在Python3中:如何检查while循环中需要整数的字符串 这是我目前的代码:我想用“退出”或“q”替换sentinel值“0”。我该怎么做 import random highest = 10 lowest = 1 counter = 0 random_number = random.randint(lowest, highest) # The randint function is in the random function within the random MODULE impo
import random
highest = 10
lowest = 1
counter = 0
random_number = random.randint(lowest, highest)
# The randint function is in the random function within the random MODULE imported above.
guess = int(input(f"Guess a number between {lowest} and {highest}. Enter '0' at any time to quit: "))
while guess is not random_number:
if guess == 0:
print("Quitting game.")
break
elif guess < random_number:
counter += 1
guess = int(input("Guess higher: "))
elif guess > random_number:
counter += 1
guess = int(input("Guess lower: "))
if guess == random_number:
print(f"Correct! Well done!! You got it right after {counter} guess(es)!")
随机导入
最高=10
最低=1
计数器=0
随机数=random.randint(最低、最高)
#randint函数位于上面导入的随机模块内的随机函数中。
guess=int(输入(f“猜一个介于{lowest}和{highest}之间的数字。随时输入“0”退出:))
虽然猜测不是随机数:
如果guess==0:
打印(“退出游戏”)
打破
elif guess<随机数:
计数器+=1
猜测=int(输入(“猜测更高:”)
elif guess>随机数:
计数器+=1
猜测=int(输入(“猜测下限:”)
如果猜测==随机数:
打印(f“正确!做得好!!你在{counter}猜(es)!”之后就得到了)
我想将sentinel值“0”更改为“q/quit”,但不确定如何…guess=int(in…,不要在int中强制转换,而是字符串)
然后查看字符串是“q”还是“quit”
如果不是q或quit,则在int:elifint(guess)
q/quit
。使用int(input(..)
,将输入转换为整数。如果用户输入字符串,则此操作将失败
。。。
虽然猜测不是str(随机数):
如果guess==“q”或guess==“退出”:
打印(“退出游戏”)
打破
猜测=int(猜测)
#如果用户未输入数字,此操作可能会失败
如果猜测<随机数:
计数器+=1
猜测=输入(“猜测更高:”)
elif guess>随机数:
计数器+=1
猜测=输入(“猜测下限:”)
如果猜测==随机数:
打印(f“正确!做得好!!你在{counter}猜(es)!”之后就得到了)
您可以做一件事:-
一种方法是,您可以在循环中获取输入并检查输入,当用户的猜测与实际数字匹配时,可以使用中断:-
而1:
猜测=输入()
如果guess='q'或guess='quit':
打印(“退出游戏”)
打破
elif int(猜测)<随机数字:
然后继续您程序的其余部分。也许可以尝试以下方法:
import random
highest = 10
lowest = 1
counter = 0
random_number = random.randint(lowest, highest)
guess = input(f"Guess a number between {lowest} and {highest}. Enter 'quit' at any time to quit: ")
while guess is not random_number:
if guess == "quit":
print("Quitting game.")
break
guess = int(guess)
if guess < random_number:
counter += 1
guess = int(input("Guess higher: "))
elif guess > random_number:
counter += 1
guess = int(input("Guess lower: "))
if guess == random_number:
print(f"Correct! Well done!! You got it right after {counter} guess(es)!")
随机导入
最高=10
最低=1
计数器=0
随机数=random.randint(最低、最高)
guess=input(f“猜一个介于{lowest}和{highest}之间的数字。随时输入'quit'退出:)
虽然猜测不是随机数:
如果猜测==“退出”:
打印(“退出游戏”)
打破
猜测=int(猜测)
如果猜测<随机数:
计数器+=1
猜测=int(输入(“猜测更高:”)
elif guess>随机数:
计数器+=1
猜测=int(输入(“猜测下限:”)
如果猜测==随机数:
打印(f“正确!做得好!!你在{counter}猜(es)!”之后就得到了)
首先,将输入存储为字符串,然后检查它是否等于“quit”。如果不是这样,请将字符串转换为整数并正常进行
我试过了,效果很好,但也许有一种更优雅的方法可以做到这一点。谢谢大家。这是一份完全有效的代码副本,也是我一直在寻找的。关键是(正如大家提到的)
guess=input(f“猜一个介于{lowest}和{highest}之间的数字。随时输入'quit'退出:)
虽然猜测不是随机数:
如果guess.casefold()=“退出”或guess.casefold()=“q”:
打印(“退出游戏”)
打破
猜测=int(猜测)
如果猜测<随机数:
计数器+=1
猜测=输入(“猜测更高:”)
elif guess>随机数:
计数器+=1
猜测=输入(“猜测下限:”)
如果猜测==随机数:
打印(f“正确!做得好!!你在{counter}猜(es)!”之后就得到了)
再次感谢
下面是相同的代码,带有继续循环的“无效输入”检查器:
guess = input(f"Guess a number between {lowest} and {highest}. Enter 'quit' at any time to quit: ")
while guess is not random_number:
if guess.casefold() == "quit" or guess.casefold() == 'q':
print("Quitting game.")
break
if guess.isnumeric():
guess = int(guess)
if guess < random_number:
counter += 1
guess = input("Guess higher: ")
elif guess > random_number:
counter += 1
guess = input("Guess lower: ")
if guess == random_number:
print(f"Correct! Well done!! You got it right after {counter} guess(es)!")
else:
print("Invalid input. Try again...")
guess = input(f"Guess a number between {lowest} and {highest}. Enter 'quit' at any time to quit: ")
guess=input(f“猜一个介于{lowest}和{highest}之间的数字。随时输入'quit'退出:)
虽然猜测不是随机数:
如果guess.casefold()=“退出”或guess.casefold()=“q”:
打印(“退出游戏”)
打破
如果guess.isnumeric():
猜测=int(猜测)
如果猜测<随机数:
计数器+=1
猜测=输入(“猜测更高:”)
elif guess>随机数:
计数器+=1
猜测=输入(“猜测下限:”)
如果猜测==随机数:
打印(f“正确!做得好!!你在{counter}猜(es)!”之后就得到了)
其他:
打印(“输入无效。请重试…”)
guess=input(f“猜一个介于{lowest}和{highest}之间的数字。随时输入'quit'退出:)
非常感谢!很高兴能为您提供帮助:)
guess = input(f"Guess a number between {lowest} and {highest}. Enter 'quit' at any time to quit: ")
while guess is not random_number:
if guess.casefold() == "quit" or guess.casefold() == 'q':
print("Quitting game.")
break
if guess.isnumeric():
guess = int(guess)
if guess < random_number:
counter += 1
guess = input("Guess higher: ")
elif guess > random_number:
counter += 1
guess = input("Guess lower: ")
if guess == random_number:
print(f"Correct! Well done!! You got it right after {counter} guess(es)!")
else:
print("Invalid input. Try again...")
guess = input(f"Guess a number between {lowest} and {highest}. Enter 'quit' at any time to quit: ")