2017-04-13 2 views
-1

次のコードを使用して、2つの文字列を連結し、同じ行に表示するにはsys.stdin.readline()の入力とsys.stdout.write()の出力を使用します。同じに連結された文字列を表示する方法

import sys 

str1 = sys.stdin.readline() 

str2 = sys.stdin.readline() 

str3 = str1 + str2 

sys.stdout.write(str3) 

出力を印刷すると、2行に分かれて印刷されます。 sysでcancatする方法が間違っていますか?

はあなたが

+0

なぜ 'print'と' input'の代わりに 'sys.stdout.write'と' sys.stdin.readline'を使用していますか?これは、標準的な入力と出力で動作する通常の方法の上に、あなたのために後続の改行を処理します。 – TigerhawkT3

+0

'str1'は改行( '\ n')で終わります。 'str1 = sys.stdin.readline()。strip()' –

+0

私は 'input()'と 'print()'を使うことを知っていますが、私はこの質問を競争相手に持っています。 'sys'を使って完了させます。 – CH325

答えて

0

反してinput(Python3)またはraw_input(Python2)の場合、sys.stdin.readlineは、文字列の最後に改行( `\ n ')を削除しません。

あなたは使用して削除することができます:文字列の両端に

str1 = sys.stdin.readline().strip() 

strip行為:あなたはまた、すべての先頭と末尾の空白を削除したい場合は

str1 = sys.stdin.readline().strip("\n") # only strip \n 

を。末尾の空白を削除する場合は、rstrip(、の場合は、)を使用してください。

文字列メソッドの完全なリファレンスについては、https://docs.python.org/3.6/library/stdtypes.html#text-sequence-type-strを参照してください。

2

readline方法は、回線終端装置が含まれた文字列を返しますありがとうございます。それを取り除くための一つの簡単な方法は、retruned文字列を使用することであろうマイナスの最後の文字:

str1 = sys.stdin.readline()[:-1] 

もう一つは、末尾の空白を削除するには、文字列のrstripメソッドを使用することです:

str1 = sys.stdin.readline().rstrip() 
+0

'strip()'と 'rstrip()'の違い – CH325

+0

[Pythonのオンラインドキュメント](https:// docs。)を見れば、あなた自身がこの質問に答えることができたと思います。 python.org/3.6/library/stdtypes.html#str.rstrip)。 [ヘルプ吸血鬼](https://meta.stackoverflow.com/tags/help-vampire/info)の習慣に入ってはいけません! 'strip'は文字列の両端から空白を削除し、' rstrip'は右端からのみ削除します。 – holdenweb

関連する問題