2017-06-24 14 views
2

私は、ユーザによって与えられた2つの文字列を連結する関数を定義していますが、sys.stdin.readline()によって返される文字列は改行文字を含みます。 (技術的には、この出力はまだ連結されていますが、2つの文字列の間に "\ n"が付いています)。改行を取り除くにはどうすればよいですか?sys.stdin.readline()から改行を取り除く方法

def concatString(string1, string2): 
    return (string1 + string2) 

str_1 = sys.stdin.readline() 
str_2 = sys.stdin.readline() 
print("%s" % concatString(str_1, str_2)) 

コンソール:

hello 
world 
hello 
world 

私はn個の文字にとる(n)を読んで、それはまだ "\ n" は

str_1 = sys.stdin.read(5) '''accepts "hello" ''' 
str_2 = sys.stdin.read(3) '''accepts "\n" and "wo", discards "rld" ''' 

コンソールを追加してみました

hello 
world 
hello 
wo 
+0

? –

答えて

1

はちょうどあなたが周囲文字を削除するには、入力から取り、各文字列にstripを呼び出します。どのような種類のストリップを確実にするためにリンクされているドキュメントを読むことを確認してください。

その行を修正し、あなたのコードを実行している
print("%s" % concatString(str_1.strip(), str_2.strip())) 

chicken 
beef 
chickenbeef 

をただし、ユーザー入力を取っているという事実に基づいて、あなたはおそらく、ここでより多くの慣用的なアプローチを取る必要があり、ちょうど一般を使用使用された入力。これを使うと、不要な文字を取り除くための操作も必要ありません。ここでは、それはあなたを導く手助けするためのチュートリアルがある:https://docs.python.org/3/tutorial/inputoutput.html

次に、あなただけ行うことができます:

あなただけの `input`(パイソン2上、すなわち` raw_input`)を使用していないのはなぜ
str_1 = input() 
str_2 = input() 

print("%s" % concatString(str_1, str_2)) 
+0

ありがとうございます!私はちょうどPythonを学び始めましたが、私はまだ自分自身にこの機能を熟知しています。 cheers – reiallenramos

+0

引数なしの '' strip() ''は空白文字をすべて削除し、文字列の先頭と末尾の両方から削除することに注意してください。文字列の最後から空白を削除したい場合は '' rstrip() ''を使い、改行文字を削除する場合は '' rstrip( '\ n') ''を使用してください。 –

0

concatStriそのようなものであることをngの:

def concatString(string1, string2): 
    return (string1 + string2).replace('\n','') 
+0

これはうまくいきました!ありがとう! – reiallenramos

関連する問題