如何创建无限变量



我想知道是否有一种方法可以使无限变量。我在网上找不到任何关于这个的东西,所以有人可以帮助吗?我在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

有人能帮帮我吗?

我不能确切地理解我要做什么,但我可以给一些一般的建议。

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

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

name1 = input('Name: ')
name2 = input('Name: ')
name3 = input('Name: ')

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

如果你想打印出所有三个名字,你现在必须写

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等其他语言相反,您可能被迫创建变量来跟踪矩阵等)

我找到解决办法了!下面是我的代码:

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])

我结合使用了for I in range + list的想法和我自己的知识来创建这个(sorta)无限变量生成器。无论如何,它将适用于需要它的情况。谢谢大家!

最新更新