很抱歉,但我对如何解决这个问题很困惑......
程序采用一系列独立的随机int输入,将每个新int与前一个(更高,更低,相等)进行比较:例如,第一个数字= 10,下一个数字= 5,输出=降低。这循环直到用户输入[0]
但我现在想要改变它,以便所有输出都在最后而不是每对后的1 。假设整体输入是2,3,6,6,5,1 [0]:print语句应该只在[0]之后,例如,更高的等于更低的低(在一个语句中都是)。
我尝试过的东西...打印(a)但当然(a)被重新分配给每个新号码......尝试过(菜鸟错误):如果b< a:b =“更高”但是“<”在'str'和'int'的实例之间不支持......尝试了一个列表但是错误:期望列表但收到了int ......另一个错误(不记得我试过了):int object is不可迭代(另外,我知道我应该有一些elif而不是所有这些ifs,但这不会导致问题...)
我的代码:
z = 0
done = False
a = int(input("Enter first number: "))
while not done:
b = int(input("Enter next number [0 = done]: "))
if b != z: #while program not done
if b > a:
print("higher")
if b == a:
print("equal")
if b < a:
print("lower")
a = b #second number becomes first and repeat
else:
done = True
非常感谢任何帮助。谢谢。
答案 0 :(得分:1)
跟踪回复,最后打印。
z = 0
done = False
a = int(input("Enter first number: "))
track_comparisons = []
while not done:
b = int(input("Enter next number [0 = done]: "))
if b != z: #while program not done
if b > a:
track_comparisons.append('higher')
elif b == a: #change to if, elif, else
track_comparisons.append('equal')
else:
track_comparisons.append("lower")
a = b #second number becomes first and repeat
else:
for response in track_comparisons:
print(response, end=' ')
done = True
答案 1 :(得分:-1)
尝试以下方法 -
z = 0
ans = []
done = False
a = int(input("Enter first number: "))
while not done:
b = int(input("Enter next number [0 = done]: "))
if b != z: #while program not done
if b > a:
#print("higher")
ans.append("higher")
if b == a:
#print("equal")
ans.append("equal")
if b < a:
#print("lower")
ans.append("lower")
a = b #second number becomes first and repeat
else:
done = True
print(ans)