首页 > 解决方案 > 如何在 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)

标签: pythonloops

解决方案


您的问题在您的代码中的其他地方 - 不在显示的部分中 - 它们有效:

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 样式的字符串文字格式


推荐阅读