函数
2019-07-22 21:51
78 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Mr_Lee9/article/details/96900321
函数
函数定义:
不带参数和返回值参数:
def 函数名():
代码块
带参数的函数:
def 函数名(参数1,参数2,…)
代码块
带参数和返回值的函数:
def 函数名(参数1,参数2,…)
代码块
return返回值
注意:
①函数名称必须遵循标识符规则,由数字,字母,下划线组成,并且不能以数字开头,不能使用关键字
②函数先定义后调用
③函数不调用是不执行
④函数可以调用多次
不带参数和返回值的函数:
def prt(): print("1楼男装") print("2楼女装") print("3楼童装") print("4楼鞋")
带参数的函数:
def qh(a,b,c):# 定义时的参数,称为形参,没有实际的值,需要实参赋值 d=a+b+c print(d)
①位置函数:
def qh(a,b,c): d=a+b+c print(d) qh(2,3,4)
②关键字函数:关键字函数写在实参中
def qh(a,b): print("我叫",a) print("我{}岁".format(b)) qh(b=12,a="lee")
注:关键字参数要写在后边
③默认参数: 注:默认参数要写在非默认参数的后边,默认参数写在形参中
def dengji(name,age,sex="男"): # sex的默认值为男 print(name,age,sex) dengji("lee",18) dengji("chi",20,"女")
④可变参数:
def kb2(*a): #元组 print(a,type(a)) x=(1,2,3) kb2(x) # x代表一个元素,传入a kb2(*x) # 将x拆分一一传给a def kb(**a): # 字典 print(a,type(a)) kb(name="张端",age=18) def kb(name,age): print(name,age) a={"name":"abc","age":20} # key的值必须要跟形参一样 kb(**a) # **拆分字典 def kb(*a,**b): # **字典必须要放在*元组后边 print(a,b) kb(1,2,3,4,5,name="lee)
参数位置,定义函数的是参数的顺序:位置参数,元组参数,默认参数,字典参数
def kb(a,*b,c=9,**d): print("a=",a) print("b=",b) print("c=",c) print("d=",d) kb(1,2,3,4,5,6,name="zzzz")
带参数和返回值的函数:
def qiuhe(a,b): c=a+b return c x=qiuhe(1,2) print(x)
可以返回多个返回值,返回的类型是元组
def hs(a,b): c=a+b d=a-b e=a*b return c,d,e a,b,c=hs(1,2) print(a,b,c)
return可以结束此方法,return后边的代码不会执行
def hs(a,b): return c=a+b d=a-b return c,d x=hs(1,2) print(x)
输出结果是None
定义两个函数,输入西红柿的单价和重量,然后返回钱数,如果钱数大于300打8折,否则抹零,返回钱数,最后输出钱数。
def js(price,weight): money=price*weight return money def pd(money): if money>300: money=money*0.8 else: money=int(money)-int(money%10) return money price=float(input("请输入单价:")) weight=float(input("请输入重量:")) money=pd(js(price,weight)) print("最后的价钱是",money)
递归三大件:递归前进,递归后退,递归边界 当递归边界成立的时候,递归后退,不成立的时候递归前进
定义一个函数,可以得到参数的递乘的结果,比如:3,321
def jiecheng(n): if n==1: return 1 else: return n*jiecheng(n-1) x=jiecheng(3) print(x)
兔子数
def tuzi(n): if n==1 or n==2: return 1 else: return tuzi(n-1)+tuzi(n-2) n=int(input("请输入月份:")) print(n,"月的兔子数是",tuzi(n)) for i in range(1,n+1): print("第",i,"个月的兔子数是",tuzi(i))
兔子换为循环
n=int(input("请输入月份:")) i=1 a,b=1,1 while i<=n: if i==1 or i==2: print(1,end="\t") else: a,b=b,a+b print(b,end="\t") i+=1
输出以下代码的结果
def p(n): print(n) if n==1: return p(n-1) print("heihei") p(4)
输出结果为:
4 3 2 1 heihei heihei heihei
在一个列表中查找数字,返回其在列表的索引,最后输出这个数所在的索引,如果没有这个数输“没有找到这个数”
def zbcz(a,start,end,key): if start>end: return -1 middle=(start+end)//2 if key>a[middle]: return zbcz(a,middle+1,end,key) elif key<a[middle]: return zbcz(a,start,middle-1,key) else: return middle a=[11,12,13,21,22,23,31,32,33,40] k=int(input("请输入要查找的数:")) x=zbcz(a,0,len(a)-1,k) if x==-1: print("没有这个数") else: print(k,"的位置是",x)
查找数字改为循环
def zbcz(a,start,end,k): while start<=end: middle=(start+end)//2 if k>a[middle]: start=middle+1 elif k<a[middle]: end=middle-1 else: return middle return -1 a=[1,2,3,4,5,6,7,8,9,10] n=int(input("请输入要查找的数:")) x=zbcz(a,0,len(a)-1,n) if x==-1: print("没有找到这个数") else: print(n,"的位置是",x)
查找数字改为循环:
start=0 a=[1,2,3,4,5,6,7,8,9,10] end=len(a)-1 k=int(input("请输入要查找的数:")) for i in range(start,end+1): middle=(start+end)//2 if k>a[middle]: start=middle+1 elif k<a[middle]: end=middle-1 else: print(k,"的位置是",middle) break else: print("没有找到这个数")
相关文章推荐
- perl常用函数积累 (转载)
- zz MATLAB 与 C 语言混合编程接口:MEX 函数最简单示例之一
- C 语言的可变参数表函数的设计
- vc中调用其他应用程序的方法(函数) winexec,shellexecute ,createprocess .
- 自定义javascript调试输出函数
- 关于函数指针与typedef
- 关于C++成员函数指针的使用
- 了解PHP建立和关闭数据库连接的具体函数用法
- 常用函数_图像处理_OpenCV(2)
- C++11 FAQ中文版:控制默认函数——默认或者禁用
- MSSQL:参数数据类型 ntext 对于 replace 函数的参数 1 无效。
- 数码管只用延时函数显示时间
- POJ 3685 Matrix 二分 函数单调性 难度:2
- 对C++中数组做函数参数的认识
- fgets() - fputs()函数使用
- MySQL中MIN()函数的使用教程
- Mysql常用函数
- python几个内建函数
- Android Studio——boolean android.app.Activity.isFinishing()函数使用
- CloseHandle()函数的使用