python - 如何在 Python 中重置计数器
问题描述
嗨,我是编程新手,我有一个程序可以计算从 1 开始到数据范围的名称。我的问题是计数器将继续添加以前的名称。例如,当我运行文件 1 时,它将显示 a,b,c ,但是当我运行第二个文件时,名称将从 d,e,f 开始。我想要的是每当我选择一个新文件时将计数器值重置为 A。
我的代码
num = 0
def countname():
global num
num += 1
return str(num)
def change():
for content in data2:
filename = "" + "Name" + " " + countname()
print(filename)
解决方案
您的问题在您的代码中的其他地方 - 不在显示的部分中 - 它们有效:
num = 0
def countname():
global num
num += 1
return str(num)
def change(data2):
for content in data2:
filename = "" + "Name" + " " + countname()
print(filename)
# the content (a,b, etc. is currently ignored)
change ("a b c d e f".split())
输出:
Name 1
Name 2
Name 3
Name 4
Name 5
Name 6
没有全局的更好版本是:
def change_better(data2):
# start indexing at 1 and loop over index,datapoints
for index, content in enumerate(data2, 1):
filename = f"Name {index}"
print(filename)
change_better ("a b c d e f".split())
它产生与上面相同的输出。
您的代码不是复制您的问题的最小可复制示例,您观察到的错误的来源在其他地方。
我的预感是您在某处将此创建的文件名添加到其他东西(fe a path),然后使用它来创建文件。还有重复名字的问题。
请参阅字符串格式:% vs. .format vs. 字符串文字以了解 f 样式的字符串文字格式
推荐阅读
- python - 为什么运行GPT2小模型时找不到encoder.json
- python - 使用python在cmd中找不到'__main__'模块
- c - 为什么 printf 在循环中只打印一次,只针对第一个输入?
- python - 为什么我无法使用 Python3 发送带有 excel 附件的电子邮件
- python - Pandas 检查一列是否包含 0 而另一列不为空
- flutter - Flutter 替换所有 HTML 代码
- python - Django:尝试在 URL 中使用 Slug 时出现 404 错误
- javascript - 页面未呈现;在 react-router-dom 中使用受保护的路由将道具传递给孩子时
- react-native - componentDidMount 中的 react-native-sound
- r - 如何做出在两个日期列之间/中找到一年的逻辑语句?