添加end =''后如何获得新输入?在python中

时间:2017-11-28 11:08:49

标签: python python-3.x

当尝试使用end =''在同一行python上打印输出时 但在打印相同的行之后我想从新行获得输出

这是我的代码

loop=int(input())
while loop>0:
    in_val=input()
    leni = len(in_val)
    while leni>0:
        print(in_val[leni-1],end='') # Here printed the same line 
        leni-=1 # Here the loop ends
        #in_val=input() I want to get this from new line not on same line
    loop-=1

任何人都应该提供线索或其他东西

输入必须如下:

2
234
542

输出:

432
542

2 个答案:

答案 0 :(得分:4)

end函数的print参数有一个非常简单的工作,它将其值添加到给定字符串的末尾。默认情况下,end的值设置为'\ n',这是换行符。

因此,当您运行时:

print("Hello")
print("World!")

输出:

>>> Hello
>>> World!

因为每个字符串的结尾都是'\ n',它告诉系统在新行上输出任何内容。

相反,如果你这样做:

print("Hello", end=' ')
print("World!")

它会输出:

>>> Hello World!

因为“\ n”不再添加到“Hello”而是“”,这意味着什么时候“世界!”输出时,它与“Hello”位于同一行。

要解决您的问题,只需从打印功能中删除end=''

答案 1 :(得分:2)

您可以在内循环后添加另一个print(),以正常的换行符结束。

loop=int(input())
while loop>0:
    in_val=input()
    leni = len(in_val)
    while leni>0:
        print(in_val[leni-1],end='') # Here printed the same line 
        leni-=1 # Here the loop ends
    print()
    loop-=1

此外,您可以将while循环替换为维护自己的循环变量的for循环:

loop=int(input())
for _ in range(loop):
    in_val=input()
    for i in range(len(in_val)):
        print(in_val[-1-i], end='') # Here printed the same line 
    print()

接下来,您可以使用list-comprehension和"".join替换内部循环。这样,循环中只有一个print,因此不需要end=""

loop=int(input())
for _ in range(loop):
    in_val=input()
    print("".join(in_val[-1-i] for i in range(len(in_val))))

最后,您可以使用in_val[::-1]来反转字符串。

loop=int(input())
for _ in range(loop):
    in_val=input()
    print(in_val[::-1])