如何使用输入作为变量名?

2024-04-27 03:09:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一句话:

exercise_name = {
            "sets": 3,
            "reps": 12,
            "weight": 100
}

我知道我可以通过以下方式获得用户输入:

exercise_name = input("Insert Exercise Name: ")

但是我怎样才能把字典直接分配给输入呢? 比如:

input("Insert Exercise Name: ") = {
    "sets": 3,
    "reps": 12,
    "weight": 100
}

我还想知道如何使用列表、集合等


Tags: 用户name列表input字典方式setsinsert
1条回答
网友
1楼 · 发布于 2024-04-27 03:09:50

不要。你知道吗

你怎么知道在你的节目里怎么说这个词?如果用户“自定义”变量名?这听起来像是一个xy-problem。你知道吗

您还可以将用户输入存储在dict中:

sillyDict = { input("Insert name") : { "sets": 3, "reps": 12, "weight": 100}}

但是为了什么目的-你打算如何使用它?如果你想用这个名字做任何事情,你需要知道它的名字或者迭代整个字典。你知道吗


看起来你真正需要的是classeslists

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]

相关问题 更多 >