好的,所以我真的很喜欢编程。我的程序要求用户输入一个'3位数字'......我需要在测试的同时确定数字的长度(确保它不小于3位数),以确保它是一个整数。这就是我所拥有的:
while True:
try:
number = int(input("Please enter a (3 digit) number: "))
except:
print('try again')
else:
break
任何帮助表示赞赏! :)
答案 0 :(得分:1)
你可以在try / except子句中尝试这样的东西。根据需要进行修改。
number_string = input("Please enter a (3 digit) number: ")
number_int = int(number_string)
number_length = len(number_string)
if number_length == 3:
break
如果数字长度不是3,您还可以使用assert
引发异常。
try:
assert number_length == 3
except AssertionError:
print("Number Length not exactly 3")
答案 1 :(得分:0)
input()
会返回一个字符串。因此,您可以先检查该号码的长度,长度不是3,然后您可以再次询问用户。如果长度为3,那么您可以将该字符串用作int()
的数字。 len()
为您提供字符串的长度。
while True:
num = input('Enter a 3 digit number.')
if len(num) != 3:
print('Try again')
else:
num = int(num)
break
答案 2 :(得分:0)
将输入保存在变量中,然后将其转换为int以检查其长度:
my_input = input("Please enter a (3 digit) number: ")
if len(my_input) != 3:
raise ValueError()
number = int(my_input)
请注意,仅except:
为bad practice。你应该以你的例外为目标。
答案 3 :(得分:0)
while True:
inp = raw_input("Enter : ")
length = len(inp)
if(length!=3):
raise ValueError
num = int(inp)
如果您使用的是Python 2.x,请不要使用input
。始终使用raw_input
。
如果您使用的是Python 3.x就可以了。
答案 4 :(得分:0)
这应该这样做:
while True:
try:
string = input("Please enter a (3 digit) number: ")
number = int(string)
if len(string) != 3 or any(not c.isdigit() for c in string):
raise ValueError()
except ValueError:
print('try again')
else:
break