Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:函数不会返回值_Python - Fatal编程技术网

Python:函数不会返回值

Python:函数不会返回值,python,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 .')

我有一段代码,它遍历用户的输入并返回输出

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
如果我运行代码,我会收到一条错误消息,在代码的后面无法加载这些值。城市、日期和月份不会被传递。
我返回值的方式有问题吗?

假设您想捕获 用户输入的三个选项。下面是python3下的工作代码。请试试这个

#!/usr/local/Cellar/python/3.6.5/bin/python3

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)
          return data
          break
      else:
          print ('Please try again.')

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

print (selection)


---Output--- 
    Enter city.city1
    city1
    Enter month.January
    January
    Enter day.Monday
    Monday
   ('city1', 'January', 'Monday')

您的缩进在此关闭,请修复此问题并发布您收到的整个错误。您不保存检查输入报告的值:您需要执行:city=check\u inputcity,city\u string,city\u list。您的城市内部检查输入不在更高功能的范围内,因此对于更高功能,城市仍然为零