将 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
希望对您有所帮助!
我有以下代码:
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
希望对您有所帮助!