Python 3.x 控制某些要求是否为真的程序
Python 3.x A program thats control if some requirments true
我设计这个项目的目的是听取学生的意见并确保
he/she 输入了 3 位数字。既不小于 3 也不大于 3,并且不应该是字符串。以上所有内容如果有问题,程序应该再次询问直到它变为真
def studentID():
try:
number=int(input("sutedent IDS:"))
try:
assert len(number)==3
except AssertionError:
print("Must be 3 digit number.")
studentID()
except ValueError:
print("Please enter an integer.")
studentID()
except TypeError:
print("What is wrong with you?")
studentID()
int
没有 len
。您必须将其转换回字符串以检查其长度。
def studentid():
try:
num = int(input('student ID:'))
if len(str(num)) != 3:
print('Please enter a 3-digit number')
return studentid()
return num
except ValueError:
print('Please enter a 3-digit number')
return studentid()
您可能还想 return 向来电者发送 num
。请注意,我们将输入转换为 int
,然后再转换回字符串。这是因为在 Python (3.6+) 的某些最新版本中,您可以在 int
文字中使用下划线,因此 int('1_2')
将是一个有效的 3 字符输入,计算结果为 2 位数字
添加到 Patrick 的评论中,我更喜欢 range(len(3)),它清晰而且效率更高。
我会怎么做
def studentID():
number=int(input("sutedent IDS:"))
if range(len(number)) == 3:
return studentID()
elif number is not int or range(len(number)) > 3 :
print('please enter a valid number')
return studentID()
else:
raise ValueError
return studentID()
我设计这个项目的目的是听取学生的意见并确保 he/she 输入了 3 位数字。既不小于 3 也不大于 3,并且不应该是字符串。以上所有内容如果有问题,程序应该再次询问直到它变为真
def studentID():
try:
number=int(input("sutedent IDS:"))
try:
assert len(number)==3
except AssertionError:
print("Must be 3 digit number.")
studentID()
except ValueError:
print("Please enter an integer.")
studentID()
except TypeError:
print("What is wrong with you?")
studentID()
int
没有 len
。您必须将其转换回字符串以检查其长度。
def studentid():
try:
num = int(input('student ID:'))
if len(str(num)) != 3:
print('Please enter a 3-digit number')
return studentid()
return num
except ValueError:
print('Please enter a 3-digit number')
return studentid()
您可能还想 return 向来电者发送 num
。请注意,我们将输入转换为 int
,然后再转换回字符串。这是因为在 Python (3.6+) 的某些最新版本中,您可以在 int
文字中使用下划线,因此 int('1_2')
将是一个有效的 3 字符输入,计算结果为 2 位数字
添加到 Patrick 的评论中,我更喜欢 range(len(3)),它清晰而且效率更高。 我会怎么做
def studentID():
number=int(input("sutedent IDS:"))
if range(len(number)) == 3:
return studentID()
elif number is not int or range(len(number)) > 3 :
print('please enter a valid number')
return studentID()
else:
raise ValueError
return studentID()