我有这个字典:
exercise_name = {
"sets": 3,
"reps": 12,
"weight": 100
}
我知道我可以通过以下方式获得用户输入:
exercise_name = input("Insert Exercise Name: ")
但是如何将字典直接分配给输入? 像这样:
input("Insert Exercise Name: ") = {
"sets": 3,
"reps": 12,
"weight": 100
}
我还想知道如何使用列表,集合等。
答案 0 :(得分:2)
不要。
您如何在程序中知道如何解决该问题?如果用户“自定义”变量名称?听起来像xy-problem。
您也可以将用户输入存储在字典中:
sillyDict = { input("Insert name") : { "sets": 3, "reps": 12, "weight": 100}}
但目的何在-您将如何使用呢?如果您想使用该名称进行任何操作,则需要了解该名称或遍历整个字典。
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]