将 startswith() 与字符串格式化运算符一起使用

Using startswith() with strings formatting operators

我有以下代码:

name = "Axe"
vowels = ["a","e","i","o","u"]    

if %s.startswith(vowels) % (name):    #name will be input from users
    print "sth"
else:
    ....

在这里,我尝试将 startswith 函数与字符串格式化运算符一起使用,但它没有用。我也试过 {} 格式,但它仍然给我一个语法错误。 我做错了什么或者这是不可能的吗? 提前谢谢你。

从你的代码中看不出你到底想做什么,但这行得通:

>>> ("%s" % 'hi').startswith('h')
True

所以我认为问题是你必须先格式化你的字符串然后再做.startswith()。另外我不认为 startswith 接受数组作为参数,所以你必须做类似

的事情
if True in map(lambda x: ("%s" % name).startswith(x), vowels):
    # do something

此外,如果您想忽略大小写,您可以这样做:

if True in map(lambda x: ("%s" % name).lower().startswith(x), vowels):
    # do something

希望对您有所帮助!