不要。
无论如何,您如何知道在您的程序中使用该词典?如果用户“自定义”变量名称?这听起来像xy-problem。
您也可以将用户输入存储在字典中:
sillyDict = { input("Insert name") : { "sets": 3, "reps": 12, "weight": 100}}
但是为了什么目的——你打算如何使用它呢?如果你想对它做任何事情,你需要知道给定的名字或遍历整个字典。
看起来你真正需要的是classes和lists:
class Exercise:
"""Capsules data for one exercise. sets/reps/weigh have defaults."""
def __init__(self, name, sets = 3, reps = 12, weight = 100):
"""'name'd exercise with sets/reps/weight - using defaults:
sets = 3, reps = 12, weight = 100"""
self.name = name
self.sets = sets
self.reps = reps
self.weight = weight
def __str__(self):
"""Friendly representation of this exercise"""
return f"{self.name}: {self.sets} sets of {self.reps} reps with {self.weight} kg"
def __repr__(self):
return str(self)
# create a plan
plan = [ Exercise("Squats"), Exercise("BenchPress",3,5,180), Exercise("Pullups",5,22,10)]
# add one by user input (fragile) - no int-validation
plan.append( Exercise(input("What to do? "),
int(input("Sets: ")),
int(input("Reps: ")),
int(input("Weight: "))))
for exer in plan:
print(exer)
print(plan)
输出:
What to do? Burpies
Sets: 5
Reps: 15
Weight: 0
Squats: 3 sets of 12 reps with 100 kg # uses the default values
BenchPress: 3 sets of 5 reps with 180 kg
Pullups: 5 sets of 22 reps with 10 kg
Burpies: 5 sets of 15 reps with 0 kg
[Squats: 3 sets of 12 reps with 100 kg, BenchPress: 3 sets of 5 reps with 180 kg,
Pullups: 5 sets of 22 reps with 10 kg, Burpies: 5 sets of 15 reps with 0 kg]