Python学习笔记系列——函数

时间:2022-08-15 14:49:28

  今年下半年的计划主要是Python和Mysql了,公司不方便看书和视频,就照着廖雪峰的Python网站开始看了。以下纯为个人笔记记录,若是想系统学习的小伙伴还是看这里的好一些,毕竟系统。https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

# -*- coding: utf-8 -*-
#调用函数
a=str(hex(255))
print(a) #空函数
def nop():
pass #绝对值函数
def my_abs(x):
if x >=0:
return x
else:
return -x
print(my_abs(int(input("请输入数字:")))) #位置参数
def Idempotent(x,y):
s=1
while y>=0:
s = s * x
y = y - 1
return s
print(Idempotent(5,2)) #默认参数
#1、必选参数在前,默认参数在后。
#2、使用默认参数最大的好处是能降低调用函数的难度。
#3、默认参数必须指向不变的对象。
def power(x,n=2):
s=1
while n>0:
s=s*x
n=n-1
return s
print(power(5)) #可变参数
def cale(*numbers): #&numbers 表示把numbers这个list的所有元素作为可变参数穿进去。
sum = 0
for i in numbers:
sum = sum + i*i
return sum
print(cale(1,2,3)) #关键字参数
def person(name,age,**kw):
print('name:',name,'age:',age,'other:',kw)
person('zichuan',24,city='shanghai')
ls ={'sex':'girl','city':'yongzhou','interest':'eat'}
person('qinglian',18,**ls) #**ls表示把ls这个dict的所有k-v用关键字参数传入到函数的**kw参数,kw将获得一个dict,注意kw获得的dict是ls的一份拷贝,对kw的改动不会影响到函数外的ls #命名关键字参数(只接收city和job作为关键字参数)
#和关键字参数**kw不同,命令关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数。
def person_1(name,age,*,city,job):
print(name,age,city,job)
person_1('zichuan',25,city='魔都',job='Testing')#命令关键字参数必须传入参数名。 #递归函数(example:阶乘)
#1、优点是定义简单,逻辑清晰。
#2、使用时需要注意调用次数过多的话,会导致栈溢出,可使用尾递归的方式优化解决。
def fact(n):
if n==1:
return 1
return n*fact(n-1)
print(fact(4))