2017-02-24 11 views
1

Pythonスクリプトにいくつかの文字列を入力したいので、コンピュータ上でテストを行うことはできません。http://www.ideone.com。しかし、私がそれをやっているやり方は、文字列を線や線分にするのではなく、文字列を組み合わせる方法です。複数の入力をシェル経由でpythonスクリプトにパイプする方法は?

のpythonのための私のコードは、私が「5」「こんにちは」「ハロー」「ハロー」「ハロー」をエコーのような何かをしようとしている

testCases = int(input()) 
Counter = 0 
while Counter < testCases: 

    Line = str(input()) 
    countTwo = 1 
    for i in range(int(len(Line)/2)): 
     if countTwo % 2 == 0: 
      print(Line[i], end='') 
     countTwo += 1 
    print('\n', end='') 

    Counter += 1 

0001.pyあり| python3 001.py

+1

あなたのコンピュータはどのOSですか?すべてのエコーコマンドが同じではありません。 –

+0

文字列は改行で区切る必要があります。 –

+0

私はLinux Ubuntuを使用しています。 – AhToyMaker

答えて

0

は、プログラムが行で入力ラインを取るので、これは動作します

echo -e "line1\nline2\nline3" 

試してみてください。このエコーステートメントは、入力を線で区切って、望むように機能させます。

0

あなたのOSを提供するようになりました。

Linuxの場合

、この作品(クレジットも答えた人@pteronewoneする):Windowsの場合

$ echo -e "5\nhello\nhello\nhello\nhello\nhello" | python3 001.py 
e 
e 
e 
e 
e 

(今後の参考のためにここに残して)、これは醜いと非効率的であるが、動作します(Windows 7のcmd.exeシェル):

C:\> (echo 5 & echo hello & echo hello & echo hello & echo hello & echo hello) | 001.py 
e 
e 
e 
e 
e 

(あなたが達成しようとしている正確にわからないが、それはどのようなスクリプトの出力です)

いくつかの他の提案:。

try()を除いてinput()をラップします。あなたの例では、「hello」が4つしか含まれていませんでしたが、5つを期待するように指示されていますので、5番目の入力を読み込み、例外が発生します。

try: 
    Line = str(input()) 
except: 
    break 

ので、あなたのrange()intfloat戻ってからキャストする必要はありません整数の除算演算子//を使用してください。

for i in range(len(Line) // 2): 
関連する問題