2016-11-10 53 views
-1

我是一名正在学习Python基础知识的学生。我明白函数是如何工作的,但我不知道如何从一个函数返回多个变量。我可以通过使用复制粘贴来达到相同的效果,但这不被老师所接受。我希望两次运行该函数,并且我希望程序保存两个输出,但仅在几秒钟内。下面是有问题的程序,当你输入你的生日时,它会在几秒钟,几分钟,几小时,几天,几周,几个月和几年给你你的年龄。如何从python 3中的单个函数返回多个变量?

#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!\n') 

age() 
+0

Python函数返回,以及一个元组的多个值的组成 – Serjik

+0

你的函数似乎没有返回任何值 –

回答

1

在Python中,你可以像这样的元组返回变量:

def func(): 
    return a, b, c, d 

并解压缩,像这样:

e, f, g, h = func()