有没有一种方法可以根据原始输入字符串的首字母使用'if'函数打印出一个字符串?

时间:2019-04-21 20:12:21

标签: python python-3.x if-statement indexing

有没有一种方法可以使用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)的身份出现

1 个答案:

答案 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