2

我正在学习 Python 课程。以下代码旨在计算字符串中的元音。我按照我认为应该的方式输入它并且没有工作。然后我从讲义中剪切 n 粘贴,它确实有效。

但我看不出有什么区别!我已经注释掉了我的非工作表达式。工作表达式在它下面。

为什么我的不起作用?

    ## 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此代码测试是否可以在 string 中找到小写版本的"aeiou"。我添加.lower()以便您的代码可以处理大写元音。

于 2013-11-07T15:07:14.337 回答
2

你想要==而不是=.

我建议改用以下等价物,因为它更具 Python 风格且更具可读性:

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

^指向您确切的错误。

or char = 'e' 

一定是

or char == 'e' 
于 2013-11-07T15:06:42.023 回答