当尝试使用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
答案 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])