python-3.x 如何选择用户可以用整数输入的位数?

93ze6v8z  于 2023-08-08  发布在  Python
关注(0)|答案(4)|浏览(112)

当我尝试运行代码时,返回的是An error occurred: object of type 'int' has no len()。我不知道该怎么办,如果有人能帮忙,我会很感激的。

student_id = int(input("Enter Student ID (8-digit number): "))

if len(student_id) != 8:
    print("The student ID number you have entered is invalid, please enter an 8-digit number")

    continue

字符串

pb3s4cty

pb3s4cty1#

正如你在问题中提到的。
您不需要将input()转换为int

student_id = int(input("Enter Student ID (8-digit number): "))

字符串
你留着吧:

student_id = input("Enter Student ID (8-digit number): ")


默认情况下,input()的数据类型为string

student_id = input("Enter Student ID (8-digit number): ")
if len(student_id) != 8:
    print("The student ID number you have entered is invalid, please enter an 8-digit number")

laawzig2

laawzig22#

if len(str(student_id)) != 8:
    print("The student ID number you have entered is invalid, please enter an 8-digit number")

字符串

vuktfyat

vuktfyat3#

如果你想继续要求用户输入一个合适的学生ID,你可以这样做:

student_id = int(input("Enter Student ID (8-digit number): "))

while len(str(student_id)) != 8:
    print("The student ID number you have entered is invalid, please enter an 8-digit number")

    student_id = int(input("Enter Student ID (8-digit number): "))

字符串
但是请记住,如果用户将int()函数无法使用的任何内容传递到输入,则此代码将抛出错误。

gzjq41n4

gzjq41n44#

下面是使用Regex的另一种方法:

while True:
        student_id = int(input("Enter Student ID (8-digit number): "))
        pattern = re.compile("^[0-9]{8}$")
        check_id = pattern.search(str(student_id))
        if check_id:
            print("The student ID number you have entered is valid. Thank you!")
            break
        else:
            print("The student ID number you have entered is invalid, please enter an 8-digit number")

字符串
注意:作为提醒,您将需要import re

相关问题