如何从Python中的'if'语句继续到'elif'?

时间:2013-09-03 12:18:15

标签: python string if-statement python-3.x count

如何从if语句继续elif?我希望最终的结果是'mybadgr',但它不断打印'badgr'。

a = "Badger"
vowels = 'AEIOUaeiou'
flicker = len(a)
if a[flicker - 2] in vowels and a[flicker -1] in'r':
    final = str(a[:flicker-2])+'r'
    flicker = len(str(final))
    #continue the if to elif
elif flicker < 6:
    final = 'My'+final

1 个答案:

答案 0 :(得分:5)

在一组if - elif - else语句中,Python只会执行一个套件。返回if的第一个elifTrue条件决定了选择的块;如果没有匹配则执行else

而不是elif,使用if开始新的块:

if a[flicker - 2] in vowels and a[flicker -1] in'r':
    final = str(a[:flicker-2])+'r'
    flicker = len(str(final))

if flicker < 6:
    final = 'My'+final

现在它是一个单独的if套件,将与之前的if分开测试。

请注意,您不需要使用flicker从末尾开始索引;负指数达到同样的目的:

if a[-2] in vowels and a[-1] == 'r':
    a = a[:-2] + 'r'

if len(a) < 6:
    a = 'My{}'.format(a)

这实现了相同的结果(尽管只设置a)而不需要flicker长度变量。