Python 函数参数-澄清
Q-编写一个函数consonach,返回字符串ch是否为辅音字母。您可以假设ch是一个只包含字母字符的字符串 我的代码:Python 函数参数-澄清,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,Q-编写一个函数consonach,返回字符串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) 它给出了
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)
它给出了一个名称错误:未定义名称“g”
但是,如果我将参数设置为stringcharacter,它将起作用:
x = consonant('g') # Works
我不明白为什么在第一种情况下它不能像在第二种情况下一样将值g传递给ch。g是一个名为g的变量。就像x在x=辅音“g”中一样
“g”是文本字符串“g”
请注意,您的代码不支持大写字符
无关但
if ch in l:
return False
else:
return True
可以简化为
return ch not in l
这实际上与函数参数没有任何关系。如果你在[a'、'e'、'i'、'o'、'u']中做了If g:printVotel,那么你仍然会得到一个NameError,不需要函数。consonantg传递的是名为g的变量,而不是第二个辅音'g'中的字符串g。既然没有名为g的变量,它会给你一个命名错误。你能澄清你的困惑吗?不带引号的g不是一个值,它是一个名称。除非定义该名称所引用的值,否则它没有任何意义,因此会触发NameError。你期望g有什么值?如果printx输出变量x,那么辅音g做什么…?