【python】函数

# 课本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]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值