如何从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
答案 0 :(得分:5)
在一组if
- elif
- else
语句中,Python只会执行一个套件。返回if
的第一个elif
或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
长度变量。