Python:不从函数返回值

时间:2018-04-30 21:12:24

标签: python

我有这个代码迭代用户输入并返回输出

while True:

  city = input("Enter city.")
  if city in city_list:
    print (city,'selected')
    break
 else:
   print ('Please try again.')

由于我要求多次输入,看起来多余,我试图将其封装在一个函数中,这是整个函数

def get_filters():
    print ('Welcome .')

    #list for month and day data_user
    city_list=['city1','city2','city3']
    month_list=['January', 'February', 'March', 'April', 'May','June','All']
    day_list=['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday','All']

    city_string=('Enter city.')
    city=None
    month_string=('Enter month.')
    month=None
    day_string=('Enter day.')
    day=None

    def check_input(data, s_string, data_list):
        while True:
            data = input(s_string)
            if data in data_list:
                print (data,'selected')
                return data
                break
            else:
                print ('Please try again.')

    check_input(city, city_string, city_list)
    check_input(month, month_string, month_list)
    check_input(day, day_string, day_list)

    return city, month, day

如果我运行代码,我会收到一条错误消息,即代码后面的值无法加载。但是,日期和月份都没有通过。 我如何返回值有什么问题吗?

1 个答案:

答案 0 :(得分:1)

不确定你的意图是什么,假设你想抓住  用户输入的三个选项。这是python3下的工作代码。请试试这个......

{{1}}