use*_*284 2 python string if-statement count python-3.x
如何继续从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
Run Code Online (Sandbox Code Playgroud)
在一组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
Run Code Online (Sandbox Code Playgroud)
现在它是一个单独的if套件,将与前面分开测试if.
请注意,您不需要使用flicker从末尾开始索引; 负指数达到相同:
if a[-2] in vowels and a[-1] == 'r':
a = a[:-2] + 'r'
if len(a) < 6:
a = 'My{}'.format(a)
Run Code Online (Sandbox Code Playgroud)
这实现了相同的结果(尽管只是设置a)而不需要flicker长度变量.