gpt4 book ai didi

python - 如何只接受 3-8 之间的整数而不接受字符串? ( python 2.7.5)

转载 作者:行者123 更新时间:2023-11-28 22:53:00 26 4
gpt4 key购买 nike

我正在尝试创建一个函数,该函数要求输入 3-8 之间的整数,并会继续询问,直到用户输入 3-8 之间的整数。因此它会再次询问您是否输入 0、-1、9 或“rabbits”。

到目前为止我有这个:

def GetNumberOfColours():
NumberOfColours = None
while type(NumberOfColours) != int or int(NumberOfColours) < 3 or int(NumberOfColours) > 8:
print "Please enter the amount of colours you would like to play with (min 3, max 8)."
NumberOfColours = raw_input()
NumberOfColours = int(NumberOfColours)

但是这段代码目前无法正常工作,因为它采用原始输入并且不会将其视为整数。但是如果我使用 input() 那么它不会接受可以输入的字符串并停止代码。我怎样才能使它工作?

最佳答案

type(NumberOfColours) 将始终为 str(或在第一次运行时为 NoneType),因为 raw_input() 返回一个字符串。

你应该这样做:

def get_number_of_colours():
while True:
print "Please enter the amount of colours you would like to play with (min 3, max 8):",
try:
num_colours = int(raw_input())
except ValueError: # gets thrown on any input except an integer value
continue
if 3 <= num_colours <= 8:
return num_colours

关于python - 如何只接受 3-8 之间的整数而不接受字符串? ( python 2.7.5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19835723/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com