How do I return multiple variables from a single function in python 3?
本问题已经有最佳答案,请猛点这里访问。
我是一个正在学习Python基础知识的学生。我知道函数是如何工作的,但我不知道如何从一个函数返回多个变量。我只使用复制+粘贴就可以达到同样的效果,但老师不接受。我希望运行函数两次,我希望程序保存两个输出,但只需几秒钟。下面是讨论中的程序,当您输入生日时,它将以秒、分钟、小时、天、周、月和年为单位显示您的年龄。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | #Age Finder Program #This program will calculate a person's age import datetime #Get current dates current_month = datetime.date.today().month current_day = datetime.date.today().day current_year = datetime.date.today().year def age(): #Get info name = input('What is your name?') print('Nice to meet you, ', name,) print('Enter the following information to calculate your approximate age!') month_birth = int(input('Enter the numerical month in which you were born: ')) day_birth = int(input('Enter the numerical day in relation to the month of which you were born: ')) year_birth = int(input('Enter the year in which you were born : ')) #Determine number of seconds in a day, average month, and a year numsecs_day = 24 * 60 * 60 numsecs_year = 365 * numsecs_day avg_numsecs_year = ((4 * numsecs_year) + numsecs_day) // 4 avg_numsecs_month = avg_numsecs_year // 12 #Calculate approximate age in seconds numsecs_1900_dob = ((year_birth - 1900) * avg_numsecs_year) + \ ((month_birth - 1) * avg_numsecs_month) + \ (day_birth * numsecs_day) numsecs_1900_today = ((current_year - 1900) * avg_numsecs_year) + \ ((current_month - 1) * avg_numsecs_month) + \ (current_day * numsecs_day) age_in_secs = numsecs_1900_today - numsecs_1900_dob age_in_minutes = age_in_secs / 60 age_in_hours = age_in_minutes / 60 age_in_days = age_in_hours /24 age_in_weeks = age_in_days / 7 age_in_months = age_in_weeks / 4.35 age_in_years = age_in_months / 12 #Output print('Well,',name,', you are approximately', age_in_secs, 'seconds old!') print('Or', age_in_minutes, 'minutes old!') print('Or', age_in_hours, 'hours old!') print('Or', age_in_days, 'days old!') print('Or', age_in_weeks, 'weeks old!') print('Or', age_in_months, 'months old!') print('Or', age_in_years, ' years old!') #Extra if age_in_years < 18: print('Have fun in School! ') age() |
在python中,可以像这样返回元组中的变量:
1 2 | def func(): return a, b, c, d |
然后像这样打开它们:
1 | e, f, g, h = func() |