2012-05-08 20 views
0

私を助けてくれてありがとう、ありがとう。私は過去の学期にPython 3.2を学んでいたので、私の知識は初心者以上のものではありません。私はWindows 7で、Python 3.2を使用し、PythonのIDLEを使用しています。Python 3.2 for-loop

forループを使用して、一連の文字列をスクロール状に印刷しています。私が意味するのは、IDLEが文字列で文字を印刷するということです。以下は私が使用しているコードです。

import os, sys, time 

message=('Enter string in here. It will print what is in here letter by letter.') 

for line in message: 
    print(line,end='') 
    sys.stdout.flush() 
    time.sleep(0.03) 

私の質問は:そこには、ユーザーが文字列が印刷されている時間を通していつでも「を入力」ヒットした場合に印刷され、文字列全体(メッセージを)持っている方法です。だから、たとえユーザーが最初に「入力」したとしても、文字列全体が印刷されます。

もう一度私を助けてくれてありがとうと感謝します。大変感謝しています。

答えて

0
import time 
import sys 
message = 'Enter string in here. It will print what is in here letter by letter.' 

for i in range(len(message) + 1): 
    sys.stdout.write('\r{}'.format(message[:i])) 
    sys.stdout.flush() 
    time.sleep(0.03) 
+0

お時間をいただきありがとうございます。しかし、これは私のためには機能しませんでした。 'xrange'は存在しません。 – dhc

+2

また、これはOPが求めるものでもありません。文字列を一度に1文字ずつ出力します。ユーザーがEnterキーを押すと残りの文字列をすぐに印刷します。 –

+0

ありがとうございます。コードはとても複雑で、私はそれを理解できませんでした。 – dhc

0

ループは回線について話しているが、回線では動作していないため、コードが少し混乱します。

message=('Enter string in here. It will print what is in here letter by letter.') 

我々は文字を取得する文字列を反復処理するのであればメッセージは文字列

for line in message: 

です。ループのたびに、lineを次の文字に設定します。そのような名前を付ける変数は、あなた自身を含めて、それを読む人を混乱させるだけです。

文字列が印刷されている間中いつでもユーザーが「入力」を押すと、文字列(メッセージ)全体が印刷される方法はありますか?だから、たとえユーザーが最初に「入力」したとしても、文字列全体が印刷されます。

私は、あなたが次の行にカーソルを移動させることができないかどうかは疑問だと思います。 This questionには、これを行うためのいくつかの方法が詳述されており、wimにはその答えの例が1つあります。それは部分的な解決策に過ぎません。このタイプのものについては、私はcurses(リンクを参照)を使用することをお勧めします。

あなたが求めているのでなければ、あなたはあなたの質問に言い返す必要があると思います。