2

私はPythonのコースに取り組んでいます。次のコードは、文字列内の母音をカウントするためのものです。あるべきだと思ったとおりに入力しましたが、機能しませんでした。次に、講義ノートから貼り付けを切り取って、うまくいきました。

しかし、違いがわかりません!機能しない式をコメントアウトしました。作業式はその下にあります。

なぜ私のものは機能しないのですか?

    ## count the number of vowels in string s
s = 'azcbobobegghakl'
vowelcount = 0
for char in s:
    ## if char == 'a' or char = 'e' or char == 'i' or char == 'o' \
       ## or char == 'u':

    if char == 'a' or char == 'e' or char == 'i' \
       or char == 'o' or char == 'u':

         vowelcount += 1
print "Number of vowels: " + str(vowelcount)

エラーメッセージは次のとおりです。

%run "/var/folders/cs/31zvz_q925v_z3tmvj09dpyc0000gn/T/tmpCEB9ME.py"
File "/var/folders/cs/31zvz_q925v_z3tmvj09dpyc0000gn/T/tmpCEB9ME.py", line 4
if char == 'a' or char = 'e' or char == 'i' or char == 'o' \
                       ^
SyntaxError: invalid syntax
4

3 に答える 3

3

==比較テストに使用する必要があります。

if char == 'a' or char == 'e' or char == 'i' \
   or char == 'o' or char == 'u':

=変数の割り当てにのみ使用されます。


または、ここでさらに良いのは、次を使用することinです。

if char.lower() in "aeiou":

このコードは、小文字バージョンのcharが文字列内にあるかどうかをテストします"aeiou".lower()コードで大文字の母音を処理できるように追加しました。

于 2013-11-07T15:07:14.337 に答える
2

代わり===.

より Pythonic で読みやすいため、代わりに次の同等のものを使用することをお勧めします。

if char in 'aeiou':
    ...
于 2013-11-07T15:07:44.587 に答える
1

^、正確なエラーを示しています。

or char = 'e' 

でなければなりません

or char == 'e' 
于 2013-11-07T15:06:42.023 に答える