我正在尝试解出一串条形码的最后一位,但我在第二个和最后一个while循环中遇到了麻烦。
它们没有为变量total
或mOf10
分配任何新值。相反,它将它们保留为0,我不明白为什么会这样。
while True:
number = input("Enter a 7 digit number please.")
if len(number) == 7:
try:
number = int(number)
except ValueError:
print("Please enter a number")
else:
break
else:
print("Please enter a valid number.")
print(number) #DELETE THIS BIT LATER!
i = 0
total = 0
while (i < 7 == True):
global total
f = str(number)[i]
if int(f) % 2 == 1:
total = total + int(f) * 3
else:
total = total + int(f)
i += 1
print(total)
mOf10 = 0
while True:
global mOf10
if mOf10 >= total:
break
else:
mOf10 += 10
finalD = mOf10 - total
print(finalD)
它会打印出您输入的任何7位数字,但不会输出10的倍数或总和。它们只会变成0。
我的老师唯一的解决方案是使用大量的if/else语句。
total
在这里不是全局变量。它与 main 函数处于相同的作用域。 - Kaushik NPmOf10
- P.hunterglobal total
和global mOf10
这两行代码,这应该会给您想要的输出结果。 - dalonloboi<7==True
总是会是假的!尝试使用(i<7)==True
或者只用i<7
。 - kaza