Tools
首页
画图
音乐
采集
记事
博客
实验室
登录
lypeng
146
文章
11
分类
46
记事
分类
生活-[23]
Linux-[24]
前端-[9]
数据库-[16]
PHP-[31]
git-[7]
其他-[6]
python-[20]
算法-[4]
React-Native-[4]
中草药-[2]
广告位1
广告位2
首页
/ python
返回列表
python(五)函数
阅读:690
发布:2018-04-11
作者:lypeng
# 函数 ## 基础 先来一个最简单的函数 根据半径r,计算圆面积s ```python # 定义 def s(r): return 3.14*pow(r,2) # 调用 print('半径为3的圆面积是:'.s(3)) ``` 函数的基本流程,传递参数--》计算处理--》返回值 ## 接下来说参数: 参数的类型有这些:位置参数,默认参数,可变参数,关键字参数,命名关键字参数 ### 位置参数:即常见的s(r)中的r ### 默认参数:即给个默认值s(r=3) ### 可变参数:一个星号,即参数个数是不确定的,例如计算a^2+b^2+...+n^2,def calc(*numbers) ```python def calc(*numbers): sum = 0 for n in numbers: sum = sum + n * n return sum ``` ### 关键字参数:两个星号def funname(**kw),关键字参数需要传递字典类型 ```python def person(name, age, **kw): print('name:', name, 'age:', age, 'other:', kw) # 调用 person('zhangsan',22,**{'sex':'man','job':'student'}) ``` ### 命名关键字参数: 指定接受的关键字参数名称,用一个星号分开 ```python def person(name, age, *, city, job): print(name, age, city, job) # 调用 >>> person('Jack', 24, city='Beijing', job='Engineer') Jack 24 Beijing Engineer ``` ### 参数组合 在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。 ```python def f1(a, b=2, *c, *, d, **kw): print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw) # 调用 f1(8,8,(2,3,4),{'d':2},{'city':'beijing','area':'fangshan'}) #报错了,似乎不能这么写,重来 # 函数fa,位置参数+可变参数+关键字参数 >>> def fa(a,*b,**kw): print('a =', a, 'b =', b, 'kw =', kw) >>> fa(1,'a','b',3,8,**{'zi':'dian'}) a = 1 b = ('a', 'b', 3, 8) kw = {'zi': 'dian'} # 参数二,位置参数+命名关键字参数+关键字参数(后面两种可以合并到一个dict传递) >>> def fb(a,*,b,**kw): print('a =', a, 'b =', b, 'kw =', kw) >>> fb(1,**{'b':'aaa'},**{'zi':'dian'}) a = 1 b = aaa kw = {'zi': 'dian'} >>> fb(1,**{'b':'aaa','zi':'dian'}) a = 1 b = aaa kw = {'zi': 'dian'} ``` ##函数练习 ### 递归 ```python def fact(n): if n==1: return 1 return n * fact(n - 1) print(len(str(fact(100)))) ``` ### 计算方程组的解 ```python import math def quadratic(a,b,c): try: a = float(a) b = float(b) c = float(c) except Exception: return "对不起,a,b,c必须是数字" if a==0: return 'a不能等于0' dt=pow(b,2)-4*a*c if dt>0: x=(-b+math.sqrt(dt))/(2*a) y=(-b-math.sqrt(dt))/(2*a) return ('方程组有两个解,分别为:x1=%.1f,x2=%.1f' %(x,y)) elif dt==0: x=(-b+math.sqrt(dt))/(2*a) return ('方程组有一个解:x1=x2=%.1f' % x) else: return '方程组无解' a=input('请输入a:') b=input('请输入b:') c=input('请输入c:') x=quadratic(a,b,c) print(x) ``` ### 找列表中的最大值与最小值 ```python def findMinAndMax(L): if not isinstance(L,list): return (None, None) if len(L)==0: return (None, None) min = L[0] max = L[0] for i in L: if i>max : max = i; if i
------本文结束
感谢阅读------
上一篇:
python(四)列表元组字典集合复习and区别与相互转换
下一篇:
python(六)类、文件读写、发邮件