如果伦政治家

2024-06-17 15:34:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我输入7位数字就可以算出gtin-8产品代码。但是如果我输入的数字超过7位数,if len语句意味着识别我输入的数字超过了7位,但它没有。我尝试将它放入一个变量中,但这也不起作用。。。任何帮助都将不胜感激!!!这是我的密码。。。。。。。。在

gtin1 = int(input("Enter your first digit... "))
gtin2 = int(input("Enter your second digit... "))
gtin3 = int(input("Enter your third digit... "))
gtin4 = int(input("Enter your fourth digit... "))
gtin5 = int(input("Enter your fifth digit... "))
gtin6 = int(input("Enter your sixth digit... "))
gtin7 = int(input("Enter your seventh digit... "))

gtin_join = (gtin1, gtin2, gtin3, gtin4, gtin5, gtin6, gtin7) 

if len(gtin_join) == 7:

Tags: inputyourlenif数字intenterdigit
3条回答

我会做以下事情:

gtin_list = []
while len(gtin_list) != 7:
    gtin = input("Please enter all 7 digits separated by commas...")
    gtin_list = [int(x) for x in gtin.split(",")]

您可能想做的是类似的事情(请注意,我在这里使用了一个列表):

ls = []
while len(ls) < 7:
    try: #always check the input
        num = int(input("Enter your {0} digit:".format(len(ls)+1) ))
        ls.append(num)
    except: 
        print("Input couldn't be converted!")

print(ls) #ls now has 7 elements

创建的元组的长度总是7,因此if-语句总是True。在

关于列表和元组之间的区别,请看这个问题here。在

你的gtin\u连接是元组,如果你想要列表,你应该使用方括号。您可以使用以下示例测试变量类型:

gtin1 = int(input("Enter your first digit... "))
gtin2 = int(input("Enter your second digit... "))
gtin3 = int(input("Enter your third digit... "))
gtin4 = int(input("Enter your fourth digit... "))
gtin5 = int(input("Enter your fifth digit... "))
gtin6 = int(input("Enter your sixth digit... "))
gtin7 = int(input("Enter your seventh digit... "))

gtin_join = (gtin1, gtin2, gtin3, gtin4, gtin5, gtin6, gtin7)

print(type(gtin_join))

gtin_join = [gtin1, gtin2, gtin3, gtin4, gtin5, gtin6, gtin7]

print(type(gtin_join))

if len(gtin_join) == 7:
    print 7

相关问题 更多 >