0

私はPythonが初めてで、基本的なスクリプトを書いてみました。
アルファベットのすべての文字を印刷しようとしていますが、無効な構文が引き続き表示されます。

letter = ord('a')
while letter != ord('z')
    print(chr(letter))
    letter = letter + 1

最初のエラー ログは次のとおりです。

while letter != ord('z')
                       ^
SyntaxError: invalid syntax

Python は閉じ括弧を好まないように見えたので、それを削除すると、次のようになりました。

print(chr(letter))
    ^
SyntaxError: invalid syntax

これを修正するために何もできなかったので、行を完全に削除しようとしました。それから私にこれを与えました:

letter = letter + 1
     ^
SyntaxError: invalid syntax

この時点で何をしているのかわかりません。スクリプト全体を完全に削除して初めて、Python は満足しました。
これ以上無効な構文が発生しないようにスクリプトを修正するにはどうすればよいですか?

4

2 に答える 2

3

Python にそれがブロックであることを知らせるために、while ループの最後にコロンが必要です。

while letter != ord('z'):
    <rest of your code here>

また、今のところ、while ループの開始部分がインデントされていて、残りの部分はインデントされていないようです。反対に、while ループで実行されるすべてのコードをインデントする必要がありますが、ヘッダーはインデントする必要はありません。

補足として、あなたのordandchr戦略は完全に有効ですが、おそらく必要以上に複雑です。Python では、for ループは文字列と数値の範囲を反復処理できます。だからあなたは言うことができます

for character in "abcdefghijklmnopqrstuvwxyz":
    print(character)

そのアルファベット文字列を取得するより短い方法は

import string
string.lowercase
于 2013-07-13T02:40:40.647 に答える
2

エンドwhileループにコロンがありません。

 letter = ord('a')
 while letter != ord('z'):
       print(chr(letter)) 
       letter += 1
于 2013-07-13T02:40:24.990 に答える