所以它相当简单。给定一个字符串我想打印出所有语法正确的字母。带有元音的'an'和所有其他字母的'a'。
我现在似乎无法做到这一点。
my_name = 'Alexander'
for l in my_name:
if l in "A" or "e" or "i" or "o" or "u":
print("give me an " + l + " !")
else:
print('give me a '+l +" !")
问题: 所有字母都打印出“an”
答案 0 :(得分:1)
您的问题是每次使用or
时都需要单独的条件。否则,您只是评估始终为"e"
的{{1}}。
只需检查它是否在这样的列表中:
True
如果检查字符串的布尔值,则始终为my_name = 'Alexander'
for l in my_name:
if l.lower() in ["a", "e", "i", "o", "u"]: #str.lower() is to check regardless of capitalization
print("give me an " + l + " !")
else:
print('give me a '+l +" !")
:
True
所以代码总是会输入>>> bool("e")
True
>>>
。
if
答案 1 :(得分:0)
将您的代码更改为此。
>>> for l in my_name:
... if l.lower() in ["a", "e", "i", "o", "u"]: #str.lower() is to check regardless of capitalization
... print("give me an " + l + " !")
... else:
... print('give me a '+l +" !")
...
give me an A !
give me a l !
give me an e !
give me a x !
give me an a !
give me a n !
give me a d !
give me an e !
give me a r !
>>>
您需要检查字母是否包含在字符数组中。如果你想要一个布尔表达式,那么if条件必须是
my_name = 'Alexander'
for l in my_name:
if l.lower() in ["a","e","i","o","u"]:
print("give me an " + l + " !")
else:
print('give me a '+l +" !")
答案 2 :(得分:0)
正在打印它,因为条件if l in "A" or "e" or "i" or "o" or "u":
总是返回最后一个字符“u”,因此条件变为true所以要解决此问题,你必须这样写,
if l in "A" or l in "e" or l in "i" or l in "o" or l in "u":
或者你也可以在列表中这样写,
if l in ["A","e","i","o","u"]: