给出的代码工作正常,但原始代码没有。 我希望代码提供1到5的数字,只接受1到5的数字。 选择范围内的数字仍然会返回随机整数。
import random
user_input = raw_input("Enter a number between 1 and 5 : ")
selected_elem = []
while len(selected_elem) < int(user_input):
if user_input >= int(6):
print ("That is not an option...")
random_elem = random.randrange(1, 10, 1)
if random_elem not in selected_elem:
selected_elem.append(random_elem)
print ("Here are the numbers... ")+ str(selected_elem)
答案 0 :(得分:2)
描述不是很清楚,但似乎你需要这样的东西:
def ask_digit(calls=0):
if calls > 10:
print "You are so boring..."
raise ValueError("Can't get answer from user")
try:
num = int(raw_input("Enter number 1-5: "))
except ValueError:
print "Not a digit"
return ask_digit(calls+1)
if num < 1 or num > 5:
print "Not valid"
return ask_digit(calls+1)
return num
if __name__ == "__main__":
ask_digit()
答案 1 :(得分:2)
这是我尝试根据您的有限细节拼凑答案:
num = input('Please enter a number between 1-5')
if num in range(1,6):
print("That's a valid option. Congratulations!")
else:
print("That's not an option, fool!")
答案 2 :(得分:2)
立即发布OP代码更新:
while len(selected_elem) < int(user_input):
if 1 <= int(user_input) <= 5:
random_elem = random.randrange(1, 10, 1)
if random_elem not in selected_elem:
selected_elem.append(random_elem)
else:
print ("That is not an option...")
请注意,如果user_input
的输入不是数字且int()
失败,程序将崩溃(抛出异常)。您可以移植下面显示的try / except代码,以便在必要时处理。
------以前的答案没有OP发布的代码------------
如果您可以确定输入始终是一个数字,则可以执行此操作:
while True:
num = input('Enter number between 1 - 5:')
if 1 <= num <= 5:
print 'number is fine'
break
else:
print 'number out of range'
它将继续循环,直到用户输入指定范围内的数字。
否则,添加的try / except代码将捕获非数字输入:
while True:
try:
num = input('Enter number between 1 - 5:')
if 1 <= num <= 5:
print 'number is fine'
break
else:
print 'number out of range'
except NameError:
print 'Input was not a digit - please try again.'
如果您不希望用户在输入非号码后再次尝试,只需调整消息并在最终break
下方添加print
语句即可退出循环。
答案 3 :(得分:2)
哎呀:
import re
def ask_digit():
while True:
digit = raw_input("Please enter a number between 1 and 5: ")
if re.match(r"[1-5]$", digit):
return int(digit)
答案 4 :(得分:1)
这是一个不断提示用户输入数字的答案,直到最终获得有效数字。
n = input('Enter a number in the range 1-5')
while(n < 1 or n > 5):
print('Incorrect input')
n = input('Enter a number in the range 1-5')
答案 5 :(得分:0)
您必须将 int 放入输入中才能使代码工作
n = int(input('Enter a number in the range 1-5'))
while(n < 1 or n > 5):
print('Incorrect input')
n = int(input('Enter a number in the range 1-5'))