【发布时间】:2018-09-14 13:19:51
【问题描述】:
Q - 编写一个函数 consonant(ch) 返回字符串 ch 是否为辅音字母。你可以假设 ch 是一个只包含字母字符的字符串。
我的代码:
l = ['a','e','i','o','u']
def consonant(ch):
if ch in l:
return False
else:
return True
x = consonant(g) # Doesn't work NameError g is not defined
print(x)
它给出了一个 NameError: name 'g' is not defined。
但是,如果我将参数作为字符串(字符)给出,它可以工作:
x = consonant('g') # Works
我不明白为什么在第一种情况下它不像在第二种情况下那样将值 g 转移到 ch。
【问题讨论】:
-
这实际上与函数参数没有任何关系。如果你已经完成了
if g in ['a','e','i','o','u']: print("vowel"),那么你会得到一个 NameError 一样的,不需要函数。 -
consonant(g)传递的是名为g的变量,而不是第二个consonant('g')中的字符串g。而且由于您没有名为g的变量,它会给您一个 NameError。 -
你能澄清你的困惑吗?
g(不带引号)不是一个值,而是一个名称。除非您定义该名称所指的值,否则它没有任何意义(因此会触发NameError)。你认为g有什么价值? -
如果
print(x)输出变量x,那么consonant(g)做了什么……?
标签: python python-3.x python-2.7