python - 在这种情况下,我如何让我的 else 在 python 中执行?
问题描述
现在只有if
并且elif
实际工作,我知道为什么,但我不知道如何解决它。在此之前我尝试了很多,我终于到了它几乎可以工作的地步,但我无法弄清楚了。如果有帮助,它是一个不和谐的命令。
这就是我所拥有的,不要介意愚蠢的变量和类似的东西:
with open("lb.json","r+")as L:
big_oof=json.loads(L.read())
for loser in big_oof["losers"]:
if loser["name"] == ctx.author.id:
loser["addiction"]=+1
print("if")
break
elif loser["name"] != ctx.author.id:
print("elif")
continue
else:
big_oof["losers"].append({"name":ctx.author.id,"addiction":1})
print("else")
print(big_oof)
L.seek(0)
L.truncate()
json.dump(big_oof,L)
编辑:感谢您的帮助!我已经接受了答案,但我的评论由于某种原因似乎不起作用,无论如何,再次感谢!
解决方案
您需要等到循环完成以确保ctx.authot.id
in 不在集合中:
with open("lb.json","r+")as L:
big_oof=json.loads(L.read())
found = False
for loser in big_oof["losers"]:
if loser["name"] == ctx.author.id:
loser["addiction"] += 1
found = True
break
if not found:
big_oof["losers"].append({"name":ctx.author.id,"addiction":1})
print(big_oof)
推荐阅读
- javascript - 为什么数据表排序从表中擦除数据
- sql - 从具有重复项的日期列中提取最近的 N 个日期
- batch-file - 批处理文件访问被拒绝
- javascript - window.open(url) mailto 在我的 url 末尾添加一个标签。如何阻止它这样做或将我的 url/# 转发到我的 url/?
- python - 根据两个坐标旋转图像
- git - git ls-files 是否打印当前工作目录中的文件
- rust - Rust 中是否有一种干净的方法可以通过替换它的值来改变 `&mut`?
- smartcard - 使用 Chromium Embedded Framework 缓存智能卡 PIN
- node.js - 通过 FCM 发送消息的 IP 或 URL firebase-admin 点击数是多少?
- python - 合并具有不同长度的多个数据框中的特定列