Python语法无法理解接收语法的原因

2024-10-04 01:23:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习一门关于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

Tags: orofinpyif表达式varcs
3条回答

^向您指出了确切的错误。你知道吗

or char = 'e' 

一定是

or char == 'e' 

你想要==而不是=。你知道吗

我建议改为使用以下等效项,因为它更具python和可读性:

if char in 'aeiou':
    ...

您需要使用==进行比较测试:

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

=仅用于变量赋值。你知道吗


或者,这里最好使用in

if char.lower() in "aeiou":

此代码测试在字符串"aeiou"中是否可以找到char的小写版本。我添加了.lower(),这样您的代码就可以处理大写元音了。你知道吗

相关问题 更多 >