2017-11-28 2 views
1

での試みは終わりを使用して、同じラインのpythonで出力を印刷する場合は=「」 が、同じ行を印刷した後、私はどのように終了=を追加した後、新たな入力を取得する「」のpython

新しいラインからの出力を取得したいです

2 
234 
542 
を:

はここでいずれかのplsは

入力は次のようでなければなりません手掛かりまたは何かを与える私のコード

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 

です

出力:

432 
542 

答えて

3

print機能のendパラメータは非常に単純な仕事をしている、それは与えられた文字列の末尾に、その値を追加します。デフォルトでは、endの値は改行文字である '\ n'に設定されています。

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

それは出力:

>>> Hello 
>>> World! 

各文字列の末尾が '\ n' の後、出力は何にシステムに指示している与えられているので、あなたが実行するため


、それは新しい行です。逆に


あなたがこれを行うにした場合、:

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

それは出力になります。

>>> Hello World! 

を "\ nは" もはや "こんにちは" に追加されていないので、しかし、代わりに ""を意味する "世界!" "Hello"と同じ行に配置されます。


問題を解決するには、印刷機能からend=''を削除してください。

+0

'end =" "'を削除すると、予想される出力と異なる結果になります。 –

+0

@tobias_k私が自分の答えを投稿したとき、OPは意図された出力を指定せず、同じ行に出力しないように質問が語られたようにしました。 –

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 

また、あなたが自分自身のループ変数を維持forループでwhileループを置き換えることができます。

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() 

次は、リスト内包表記と"".joinと内側のループを置き換えることができます。この方法では、printがループ内に1つしかないため、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]) 
関連する問題