【问题标题】:Python-3.6 How can I print all outcomes at the end instead of after each input?Python-3.6 如何在最后而不是在每次输入之后打印所有结果?
【发布时间】:2017-06-08 22:53:52
【问题描述】:

对不起,我对如何解决这个问题感到困惑......

程序采用一系列独立且随机的 int 输入,将每个新 int 与前一个 int 进行比较(更高、更低、相等):例如,第一个数字 = 10,下一个数字 = 5,输出 =降低。这个循环直到用户输入 [0]

但我现在想更改它,以便所有输出都在末尾,而不是每对之后的 1。假设整体输入是 2、3、6、6、5、1 [0]:打印语句应该只在 [0] 之后,这会说,例如,higher Higher 等于 lower lower(全部在一个语句中)。

我尝试过的事情... print(a) 但当然 (a) 会重新分配给每个新号码.....尝试过(新手错误):如果 b

我的代码:

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

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

【问题讨论】:

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


    【解决方案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
    

    【讨论】:

    • 这很好,谢谢。但它有几个问题:“相等”错误(例如 5 和 5)并随着响应重新启动程序。不幸的是,我的编码技能还不够高,不知道为什么!
    • 再检查一下,我不小心把append.append,应该只有一个append的地方放了。
    • 是的,现在它运行良好。谢谢!一个小小的 .append 可以带来的不同很奇怪!
    【解决方案2】:

    试试下面的 -

    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)
    

    【讨论】:

    • 我不知道为什么这个答案是-1,因为它几乎可以满足我的需求,并且不会使程序过于复杂,这是一个优点。唯一的区别是我想要这样的输出:higher Higher lower equal... 而不是 ['higher'], ['higher'], ['lower'], [equal],....
    猜你喜欢
    • 2021-07-03
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 2021-06-29
    • 2020-06-24
    • 1970-01-01
    • 1970-01-01
    • 2020-12-28
    相关资源
    最近更新 更多