根据人名区分输出?

时间:2019-04-27 07:11:45

标签: python python-3.x

我正在研究这段代码,该代码基本上根据用户提供的输入(用户名)提供输出,我需要有关如何区分基于名称的输出的帮助/建议。

我尝试过if语句,但是它确实是基本的检测程序,因为我不久前才研究python。

# var
import random

nopes = ("nope1", "nope2", "nope3")

list1 = 1

list2 = 2

list3 = 3

list4 = 4

list5 = 5

list6 = 6

list7 = 7

list8 = 8

list9 = 9


# functions
def mainfunc():

    if a in "name1":
        print(list1)
    elif a in "name2":
        print(list2)
    elif a in "name3":
        print(list3)
    elif a in "name4":
        print(list4)
    elif a in "name5":
        print(list5)
    elif a in "name6":
        print(list6)
    elif a in "name7":
        print(list7)
    elif a in "name8":
        print(list8)
    elif a in "name9":
        print(list9)
    else:
        talk()
def talk():

    print(random.choice(nopes))

#syntax's
a = input("What's your name? : ")

mainfunc()

是的,它有效。但是如果输入错误,代码将无法按我预期的那样工作,而我试图避免这种情况。

1 个答案:

答案 0 :(得分:0)

我并没有完全理解您的代码的意图,但是,如果您想根据输入来打印不同的列表,则可以使用词典来代替几个list#对象。

lists = {
  "name1": ["a","b","c"],
  "name2": ["d","e","f"]
}

a = "name1"

if (a in lists.keys()):
  print(lists[a])

# Output: ['a', 'b', 'c']

那样,您只需要维护字典对象,而不必维护单个对象和elseifs