Python自学疑问:如何在for循环结束后执行指定操作?
解决Python for循环结束后执行操作的问题
嘿,我来帮你搞定这个问题!你想在for循环完全结束后调用printer函数,但之前的尝试方向不对——elif y == False这种判断根本不会触发,因为循环结束时y会保留最后一个遍历的元素,不会变成False。
先梳理下原始代码的小细节
在处理字符串大小写时,你写了y.upper()但没重新赋值给y(字符串是不可变类型,调用方法不会修改原变量),不过好在你直接在var2 +=里用了y.upper(),这部分结果是对的,单独写的y.upper()那行其实没用,可以删掉。
正确的实现方式
只需要把printer函数的调用放在for循环的外面,和for语句保持同一缩进层级就行,这样循环遍历完所有元素后,自然会执行这行代码。
修改后的完整代码如下:
def mixer(g): print(g) def printer(h): print("end") # 如果需要打印处理后的结果,可以加上这行 # print(h) X = input("words : ") var2 = "" var1 = X.split() for y in var1: if len(y) > 5: var2 += y.upper() + " " mixer(var2) elif len(y) <= 5: var2 += y.lower() + " " mixer(var2) # 循环结束后执行这里的printer调用 printer(var2)
为什么之前的方法无效?
你尝试的elif y == False逻辑不成立:for循环是遍历var1里的每个元素,当所有元素都遍历完后,循环就会自然终止,不会给y赋值为False,所以那个条件永远不会被触发,printer也就不会被调用。
把函数调用放在循环外部,是最直接也最符合逻辑的做法哦!
内容的提问来源于stack exchange,提问作者X-x
相关产品推荐
相关产品推荐

