Установить ответ raw_input в качестве предопределенной переменной
Новичок здесь.
Я хотел, чтобы Python просматривал переменные (в данном случае, Джон, Кларк и Брюс) и выплевывал строки в этих массивах, но мне не повезло выяснить, как это сделать. Вот пример, над которым я работал:
names = ("john", "clark", "bruce")
john = ("doe", "13-apr-1985")
clark = ("kent", "11-jan—1987")
bruce = ("wayne", "05-sep-1988")
user = raw_input("What is your name?")
if user in names:
print "Your last name is: " + ????[0]
print "Your date of birth is: " + ????[1]
else:
print "I don’t know you."
Вопросительные знаки, где я застрял. Я не знаю, как связать их вместе. Надеюсь, мой вопрос не слишком запутанный.
3 ответа
Используйте словарь, чтобы сопоставить имена с имеющимися у вас кортежами.
names = { "john": (“doe”, “13-apr-1985”),
"clark": (“kent”, “11-jan—1987”),
"bruce": (“wayne”, “05-sep-1988”)}
user = raw_input(“What is your name?”)
if user in names.keys():
print “Your last name is: “ + names[user][0]
print “Your date of birth is: “ + names[user][1]
else:
print “I don’t know you.”
Чтобы сделать это еще более питоническим и с ним легче работать, создайте вложенный словарь:
names = { "john": {"last": “doe”, "birthdate": “13-apr-1985”},
"clark": {"last": “kent”, "birthdate": “11-jan—1987”},
"bruce": {"last": “wayne”, "birthdate": “05-sep-1988”}}
user = raw_input(“What is your name?”)
if user in names.keys():
print “Your last name is: “ + names[user]["last"]
print “Your date of birth is: “ + names[user]["birthdate"]
else:
print “I don’t know you.”
В качестве примечания, вы, вероятно, захотите обрезать любой начальный пробел на входе, пока вы на нем.
...
user = raw_input(“What is your name?”)
user = user.strip()
if user in names.keys():
...
Вы можете использовать словарь:
names = {
"john": {
"last_name": "doe",
"date_of_birth": "13-apr-1985"
},
}
user = raw_input("What is your name?")
if user in names:
print "Your last name is: " + names[user]["last_name"]
print "Your date of birth is: " + names[user]["date_of_birth"]
else:
print "I don’t know you."
Обратите внимание, что этот подход не будет работать, когда несколько человек имеют одинаковое имя. В этом случае вам нужно адаптировать структуру данных для соответствующей обработки (и вам нужно решить, чьи результаты вы будете отображать, когда кто-то заполняет "john"
).
Вы должны использовать dict
вот так
d = {"john" : ("doe", "13-apr-1985"),
"clark" : ("kent", "11-jan-1987"),
"bruce" : ("wayne", "05-sep-1988")}
...
...
if user in d:
print “Your last name is: “ + d[user][0]
print “Your date of birth is: “ + d[user][0]
else:
print “I don’t know you.”