Установить ответ 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.”
Другие вопросы по тегам