-1

私は Python の完全な初心者であり、比較的単純なもの (初心者向け) について「ヘルプ」が必要です。

私が作ろうとしているのは、入力された文字列の長さを測定する簡単な「プログラム」です。十分に調べていないのかもしれませんが、インターウェブでこれに関する特定の情報を見つけることができないようです.

わかりましたので、これまでに行ったことは次のとおりです。

print "Please enter a number or word and I will tell you the length of it."

NR = raw_input()
print len(NR)

*NR には特に意味はありません。単なる確率変数名です。

最初はすべてが期待どおりに機能します。たとえば、「He​​llo」という単語を入力すると、「5」が返されます。または、数字の 100 を入力すると「3」が返されますが、別の単語を入力しようとすると、次のエラーが表示されます。

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    hello
NameError: name 'hello' is not defined

ただし、別の番号を入力すると(すでに番号を入力した後)、入力した番号が繰り返されます。たとえば、最初に数字「50」を入力すると「2」が返されますが、もう一度「50」を入力すると、整数が繰り返されます。

注: 最初の部分の問題を理解していると思います: 変数 "NR" は、入力された最初の文字列としてのみカウントされるため、複数回は機能しません。私が正しいとしても、これに対する解決策はまだわかりません。

4

1 に答える 1

3

プログラムは正確に 1 行の入力を収集して終了します。プログラムが終了すると、プログラムを開始したときに使用した環境に戻ります。その環境が python シェルの場合、入力50すると が出力され50、入力すると no- such hello-variable-name エラー メッセージが出力されることを期待する必要があります。

コードを複数回実行するには、while ループに入れます。

while True:
    print "Please enter a number or word and I will tell you the length of it."

    NR = raw_input()
    print len(NR)

プロンプトを出力できるので、ステートメントraw_input()は必要ないことに注意してください。print

while True:
    NR = raw_input("Please enter a number or word and I will tell you the length of it: ")
    print len(NR)

このプログラム フラグメントは永久に (または、少なくともControl-で中断するまでC) 実行されます。

プログラムを中断せずに停止できるようにしたい場合は、次のことを試してください。

NR = None
while NR != '':
    NR = raw_input("Please enter a number or word (or a blank line to exit): ")
    print len(NR)

プロンプトを 1 回出力してから、ユーザーが多くの文字列を入力できるようにしたい場合は、次のようにしてください。

print "Please enter a number or word and I will tell you the length of it."
while True:
    NR = raw_input()
    print len(NR)
于 2013-10-02T18:27:33.390 に答える