2

如何从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
4

1 回答 1

7

在一组if- elif-else语句中,Python 只会执行其中一个套件。返回的第一个ifelif条件True决定了选择哪个块;如果没有匹配则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长度变量即可实现相同的结果(尽管只是设置)。

于 2013-09-03T12:21:04.703 回答