If len 语句
If len Statement
我输入了七位数字,以便能够计算出 gtin-8 产品代码。但是,如果我输入的数字超过七位,则 if len 语句旨在识别我输入的数字超过七位,但事实并非如此。我试着把它放到一个变量中,但这也不起作用......任何帮助将不胜感激!这是我的代码.......
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:
你的 gtin_join 是元组,如果你想要列表,你应该使用方括号。您可以使用此示例测试变量类型:
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
您可能想要做的是类似的事情(注意我在这里使用的是列表):
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_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(",")]
我输入了七位数字,以便能够计算出 gtin-8 产品代码。但是,如果我输入的数字超过七位,则 if len 语句旨在识别我输入的数字超过七位,但事实并非如此。我试着把它放到一个变量中,但这也不起作用......任何帮助将不胜感激!这是我的代码.......
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:
你的 gtin_join 是元组,如果你想要列表,你应该使用方括号。您可以使用此示例测试变量类型:
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
您可能想要做的是类似的事情(注意我在这里使用的是列表):
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_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(",")]