# 课本105页
#定義一個函數,用於判斷大寫字母和小寫字母的個數
def demo(s):
a=0
b=0
for ch in s:
if ch.isupper():
a+=1
elif ch.islower():
b+=1
return a,b
s=input("親輸入英文字符串:")
c=demo(s)
print(c,type(c))
print("大寫字母的個數爲:',c[0],',小寫字母的個數為:',c[1]'")
默认值参数
def demo(newitem,old_list=[]):
old_list.append(newitem)
return old_list
print(demo('5',[1,2,3,4]))
print(demo('a'))
print(demo('b'))
关键字参数
def printinfo(name,age):
print("名字:",name)
print("年龄:",age)
return
printinfo(name="鲍勃",age=20)#关键字函数传递
不定长参数
#不定长参数
#语法格式:def 函数名([形参列表,],*args,**kwargs): 函数体
def h(a,b,*args,**kwargs):#args用来接受多个实参并放入一个元组中,kwargs接受类似于关键字参数的多个实参放入字典中
print(a)
print(b)
print(args)
print(kwargs)
h(11,2,3,4,5,90,x=6,y=7,z=8)#a,b各自获得一个值,剩下的为一个元组
#结果:
#11
#2
#(3, 4, 5, 90)
#{'x': 6, 'y': 7, 'z': 8}
h(1,2,3,0,7,8,9)
# 结果:
# 1
# 2
# (3, 0, 7, 8, 9)
# {}
求阶乘;
def fac(k): #计算阶乘
i=2
t=1
while i<=k: #1*2*3···*k
t*=i
i=i+1
return t
print(fac(10))
def sum(n): #求累加
s=0
i=1
while i<=n:
s=s+fac(i) #调用fac函数
i+=1
return s #返回累加结果
print('1!+2!+3!···10!=',sum(10)) #调用sum函数
print('---------------------------分割线------------------------------')
# 递归求阶乘
def f(n):
if n==1:
return 1
else:
return f(n-1)*n
print(f(10))
def sum(n): #求累加
s=0
i=1
while i<=n:
s=s+f(i) #调用f函数
i+=1
return s #返回累加结果
print('1!+2!+3!···10!=',sum(10)) #调用sum函数
结果:
3628800
1!+2!+3!···10!= 4037913
---------------------------分割线------------------------------
3628800
1!+2!+3!···10!= 4037913
[Finished in 0.2s]
匿名函数:
# 匿名函数:将函数名作为函数结果返回
# 函数名=lambda[参数列表]:表达式
# 把学生信息按成绩排名后输出
stu=[
{'num':'11907899','name':'wnG','SCORE':89},
{'num':'89764713','name':'CAU','SCORE':91},
{'num':'23178472','name':'JDS','SCORE':99},]
stu.sort(key=lambda x:x['SCORE'])
for s in stu:
print('学号:',s['num'],'姓名:',s['name'],'成绩:',s['SCORE'])
结果:
学号: 11907899 姓名: wnG 成绩: 89
学号: 89764713 姓名: CAU 成绩: 91
学号: 23178472 姓名: JDS 成绩: 99
[Finished in 0.1s]