有没有一种方法可以使用if函数确定字符串的第一个字母是否是元音,如果不是,则打印其他内容?
我已经做了很多研究,发现的答案太先进了,我无法理解。这是我自己遇到的一个小挑战,它是基于CodeAcademy的“ Pyg Latin”翻译器
translate = input("Translate: ")
cons = "ay"
vowel = "way"
if len(translate) > 0:
switch = str(translate[0])
if str(translate[0]) != "a, e, i, o, u":
new_word = str(translate) + str(switch) + str(cons)
print (new_word.lower())
else:
new_word = str(translate) + str(vowel)
print (new_word.lower())
else:
print("Please type something")
工作是根据“翻译”是否以元音开始添加“ Way”或“ Ay”。 我觉得我似乎跳过了一些完全显而易见的事情,但我无法弄清楚。 该程序几乎忽略了第6行 乔丹(Jordanjay)出场 安德鲁(Andrew)以安德鲁(Andrewayay)的身份出现
答案 0 :(得分:0)
在线:
if str(translate[0]) != "a, e, i, o, u":
您正在接受翻译的第一个字母(translate [0])
例如,您具有translation ='example',首字母为'e'
您正在比较(!=表示DIFFEREN)'e'与另一个字符串“ a,e,i,o,u”,您的第一个字母将不同于字符串“ a,e,i,o,u ”,则需要检查第一个字母是否不在该字符串中,可以使用:
if str(translate[0]) not in "a, e, i, o, u":
或者您可以检查您的信件是否不在列表中:
if str(translate[0]) not in ['a', 'e', 'i', 'o', 'u']:
如何检查Python列表中是否包含某些内容? 最便宜,最易读的解决方案是使用in运算符(或在您的特定情况下,不使用in)。如文档中所述,
内内和内外内的运营商测试成员资格。 x in s 的计算结果为 如果x是s的成员,则为True,否则为False。 x不在s 中返回 x在s中的取反。
另外,
不在中的运算符被定义为具有在中的反真值。
不在x中的y在逻辑上与不在x中的y相同。
以下是一些示例:
'a' in [1, 2, 3]
# False
'c' in ['a', 'b', 'c']
# True
'a' not in [1, 2, 3]
# True
'c' not in ['a', 'b', 'c']
# False