Python中for循环内if-else逻辑失效问题求助
解决你的Python脚本输出问题
咱们来一步步梳理你的问题哈,你的代码里有两个关键问题,导致实际输出和预期不符:
1. 条件判断的逻辑写错了
你写的if eachenv=="DEV01" or "DEV02" 可不是Python里正确的写法哦。or运算符两边得是完整的布尔判断,现在右边的"DEV02"是个非空字符串,Python会直接把它当成True,所以不管eachenv是什么值,这个条件永远成立,这就是为啥所有输出都是dev。
正确的写法有两种,选哪种都行:
- 逐个比较:
if eachenv == "DEV01" or eachenv == "DEV02" - 更简洁的成员检查:
if eachenv in {"DEV01", "DEV02"}(用集合的话查找效率还更高)
2. 文件读取的方式不对
你的env.txt里是一行用空格分隔的环境名,但for eachenv in envnames是在逐行读取文件,所以eachenv拿到的是整行内容(比如"DEV01 DEV02 UAT01 UAT02\n"),根本不是单个的环境名。得先把读取到的行拆分成单个的环境名,再遍历。
另外,读取到的行末尾可能带换行符\n,记得用strip()先去掉首尾的空白字符,避免拆分出空字符串。
修复后的完整代码
with open("env.txt") as envnames: # 读取单行内容,清理首尾空白后按空格拆分出环境名列表 env_list = envnames.readline().strip().split() for eachenv in env_list: if eachenv in {"DEV01", "DEV02"}: print("dev") elif eachenv in {"UAT01", "UAT02"}: print("uat") else: print('')
运行结果
跑这个修复后的代码,就能得到你想要的输出:
dev dev uat uat
内容的提问来源于stack exchange,提问作者Sivakumar Kayaroganam
相关产品推荐
相关产品推荐

