Python 如何创建无限变量

Python 如何创建无限变量,python,pickle,Python,Pickle,我想知道是否有一种方法可以产生无限的变量。我在网上找不到这方面的任何东西,有人能帮忙吗?我在mac电脑上使用python IDEL 3.9.1,以防万一会有所不同。为了说明这一点,我不想重写变量。我有一个pickle文件,它使用重复变量存储信息。我需要读它们。这是我的密码: json = .json while loopvariable == true: #looping variable here = pickle.load( open( savefilename, "rb&

我想知道是否有一种方法可以产生无限的变量。我在网上找不到这方面的任何东西,有人能帮忙吗?我在mac电脑上使用python IDEL 3.9.1,以防万一会有所不同。为了说明这一点,我不想重写变量。我有一个pickle文件,它使用重复变量存储信息。我需要读它们。这是我的密码:

json = .json
while loopvariable == true:
    #looping variable here = pickle.load( open( savefilename, "rb"
    if #name (a variable from a input() earlier == #looping variable here: 
        savefilename = #looping variable here + json
        favorite_color = pickle.load( open( savefilename, "rb" 
        loopvariable = false
    elif name != #looping variable here
        a = true
while a = true:
    loopvariable = false
    loopvariable = true
    a = false

有人能帮我吗?

我不能确切地理解你想做什么,但我可以给出一些一般性的建议

在处理多个相关数据段时,应始终使用集合数据结构,而不是将它们存储在单独的变量中

例如,如果试图从用户输入三个名称,初学者程序员可能会说:“嘿,我知道我将使用三个变量!”。这是编写此代码的错误方式

为什么这件事不受欢迎?因为您必须按名称访问每个变量,而使用索引动态访问它们是一件痛苦的事情

如果你想把这三个名字都打印出来,你现在就得写下来

print(name1)
print(name2)
print(name3)
这是一个很大的工作

相反,始终使用列表或其他集合数据结构

例如,在这里,您最好这样编写代码

names = []
for i in range(3):
    names.append(input('Name: '))

...

for i in range(3):
    print(names[i])


这回答了你的问题,因为听起来你好像在试图将数据保存在许多不同的变量中。这不仅使访问变量变得困难,而且使跟踪变量变得困难。这也不是Python设计的初衷(与其他语言如MATLAB不同,在MATLAB中,您可能被迫创建变量来跟踪矩阵等)

我找到了一个解决方案!这是我现在的代码:

import pickle
names = []
count = 0
times = 1
a = "false"
json = ".json"
gameplayfunc = "false"
while (count < 9):
    for i in range(times):
        names.append(input('Please enter save file name: '))
    x = input("Would you like to create another save file?")
    if x == "Yes" or x == "yes" or x == "YES":
        namee = names[i] + json
        pickle.dump( x, open( namee, "wb" ) )
        times = times + 1
        a == "true"
    elif x == "No" or x == "no" or x == "NO":
        namee = names[i] + json
        pickle.dump( x, open( namee, "wb" ) )
        gameplayfunc = "true"
        count = 10
while a == "true":
    count = 10
    count = 1
    a == false

...


for i in range(times):
    print(names[i])
导入pickle
名称=[]
计数=0
次数=1
a=“假”
json=“.json”
gameplayfunc=“false”
而(计数<9):
对于范围内的i(次):
name.append(输入('请输入保存文件名:'))
x=输入(“是否要创建另一个保存文件?”)
如果x==“是”或x==“是”或x==“是”:
namee=names[i]+json
pickle.dump(x,打开(名称为“wb”))
次数=次数+1
a==“正确”
elif x==“否”或x==“否”或x==“否”:
namee=names[i]+json
pickle.dump(x,打开(名称为“wb”))
gameplayfunc=“真”
计数=10
而a==“true”:
计数=10
计数=1
a==假
...
对于范围内的i(次):
打印(姓名[i])

我使用范围内的for I+列表思想和我自己的知识相结合来创建这个(sorta)无限变量生成器。无论如何,它将适合需要一个的情况。谢谢你们

对。有人可以帮你。您是否尝试过使用
列表
目录
?您的意思是没有
OutofMemoryError的无限变量
?什么是“无限变量”?您的意思是创建无限多的变量?使用
列表
目录
来存储信息?您知道这两种数据结构中的任何一种吗?你能举个例子说明你想让代码看起来如何/如何工作吗?…我会解释这种情况。我正在尝试制作一个可以无限保存文件的游戏,我正在使用pickle来完成。显然,我在两天内不能接受mt自己的答案。。。
import pickle
names = []
count = 0
times = 1
a = "false"
json = ".json"
gameplayfunc = "false"
while (count < 9):
    for i in range(times):
        names.append(input('Please enter save file name: '))
    x = input("Would you like to create another save file?")
    if x == "Yes" or x == "yes" or x == "YES":
        namee = names[i] + json
        pickle.dump( x, open( namee, "wb" ) )
        times = times + 1
        a == "true"
    elif x == "No" or x == "no" or x == "NO":
        namee = names[i] + json
        pickle.dump( x, open( namee, "wb" ) )
        gameplayfunc = "true"
        count = 10
while a == "true":
    count = 10
    count = 1
    a == false

...


for i in range(times):
    print(names[i])