Python-3.6如何在结束时而不是在每次输入后打印所有结果?

时间:2017-06-08 22:53:53

标签: string python-3.x loops int output

很抱歉,但我对如何解决这个问题很困惑......

程序采用一系列独立的随机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

非常感谢任何帮助。谢谢。

2 个答案:

答案 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)