一、函数
函数中return后面的语句不执行,如果返回值含多个数据,则打包成元组
多个返回值可以直接赋值给用逗号隔开的变量实现拆包
二、练习
1、判断输入的年份是否为闰年
def nian (year):
""" 判断是否为闰年 """
year=int(year)
if (year%4==0)and(year%100!=0):
print('%s是闰年'%year)
elif year%400==0:
print('%s是世纪闰年'%year)
else:
print('%s不是闰年'%year)
nian(input('请输入年份:'))
2、定义一个输入三个数字求三个数字之和的函数和一个求三个数字的平均值的函数
def sum (num1,num2,num3):
""" 求三个数的和 """
sum=num1+num2+num3
return sum
def average (num1,num2,num3):
""" 求三个数平均值"""
average=sum (num1,num2,num3)/3
return average
3、定义一个输出列表中最大值与最小值,以及最大值和最小值的平均值的函数
def alist (list1):
""" 求一个列表的最大值与最小值的平均值 """
a=list1[0]
b=list1[0]
for i in list1:
if a < i:
a=i
if b > i:
b=i
print('max:',a)
print('min:',b)
print('average:',(a+b)/2)
4、有五个人,每个人的年龄都比第一个人大两岁,用函数表示输入的第几个人的年龄
def old (r):
""" Function doc """
rlist=[]
for i in range(5):
rx=2*i+10
rlist.append(rx)
return rlist[r-1]
r=int(input('你想知道第几个人的年龄:'))
print(old(r))
5、简单的通过同义词列表判定输入的两个句子是否为同义句
synonyms = [('beautiful','pretty'),('mom','mommy'),('quite','very')]
strings1 = input('strings1:')
strings2 = input('strings2:')
def judge (strings1,strings2):
""" 判断两个句话是否同义 """
list1=strings1.split(' ')
list2=strings2.split(' ')
list3=[]
for i in range(len(list1)):
if list1[i]!=list2[i]:
list3.append(i)
for i in list3:
for j in synonyms:
if list1[i]==j[0]:
list1[i]=j[1]
elif list1[i]==j[1]:
list1[i]=j[0]
if list1==list2:
return True
else:
return False
print(judge(strings1,strings2))
三、map(function,list)
对列表中的每一个元素进行函数操作
>>> def mul(a):
return a*2
>>> x=[1,2,3,4,5]
>>> y=map(mul,x)
>>> list(y)
[2, 4, 6, 8, 10]