3

私は次のコードを持っています:

age = raw_input("How old are you? ")
height = raw_input("How tall are you? ")
weight = raw_input("How much do you weigh? ")
print " So, you're %r old, %r tall and %r heavy." %(age, height, weight)

これで、raw_input関数は末尾の改行なしで標準出力を実行できます。次に、この関数は入力から行を読み取り、それを文字列に変換して(末尾の改行を削除して)、それを返します。

raw_inputは文字列のみを返すため、私が理解していないのは、すべてのプロンプトメッセージが新しい行に表示される理由です。\n改行は追加されず、コードにも改行がありません。

4

2 に答える 2

4

raw_input()への応答を入力するときは、改行を入力して終了します。入力した各文字も入力時に表示されるため、改行も表示されます。

Pythonビルトインを変更し、raw_inputを変更した場合、「。」で終了する可能性があります。'\n'の代わりに。インタラクションは次のようになります。 How old are you? 12.How tall are you? 12.How much do you weigh? 12. So you're ...

于 2011-10-18T18:51:16.783 に答える
1

これは、msvcrtを使用してWindowsでそれを行う方法です。cursesライブラリを使用してMacまたはUNIXで同様のことを行うことができます。

import msvcrt
import string

print("How old are you? "),
age = ''
key = ''
while key != '\r':
    key = msvcrt.getch()
    age += key
print("How tall are you? "),
key = ''
height = ''
while key != '\r':
    key = msvcrt.getch()
    height += key
print("How much do you weigh? "),
key = ''
weight = ''
while key != '\r':
    key = msvcrt.getch()
    weight += key
print "\n So, you're %r old, %r tall and %r heavy." %(string.strip(age), string.strip(height), string.strip(weight))

サンプル出力は次のようになります。

How old are you?  How tall are you?  How much do you weigh?
 So, you're '37' old, "6'" tall and '200' heavy.
于 2011-10-18T19:00:11.190 に答える