函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。
你已经知道Python提供了许多内建函数,比如print()。
但你也可以自己创建函数,这被叫做用户自定义函数。
1.函数的定义
def hello():
print('hello')
hello()
#嵌套
def westos():
print('This a',end=' ')
def python():
print('python file')
python()
westos()
def wecome(name):
print('hello',name)
wecome('tom')
wecome('lala')
2.函数的参数 # 位置参数:形参和实参个数必须保持一致 # 按照位置传递参数 def getInfo(name, age): print(name, age) getInfo('westos', 11) getInfo(age=11, name='westos')
# 默认参数:形参和实参可以不一致 def mypow(x, y=2): print(x ** y) mypow(4) mypow(2, 3) # 可变参数 def mysum(*args): sum = 0 for item in args: sum += item print(sum) mysum(1, 2, 3, 4) # 关键字 def getStuInfo(name, age, **kwargs): print(name, age) print(kwargs) getStuInfo('wetos', 19, hon=['sd', 'dsa'], hon1=['fa', 'dasd'])
3.函数的返回值 """ return 用来返回函数执行的结果,如果没有返回值,默认返回None 函数一旦遇到return,就执行结束,后面的代码不会执行 返回多个值,通过元组返回 """ def mypow(x, y=2): return x ** y, x + y print('lalalallalalla') a = mypow(3) print(a) print(mypow(4)) a = 1 print('outside', id(a)) def fun(): global a # 声明a为全局变量 a = 5 print('inside:', id(a)) fun() print(a) print(id(a))
实列1
import random """ 案例一 编写一个函数用于接收多个数 返回第一个值为平均数,第二个为大于平均数的所有数 """ def caclute(*args): args_sum = sum(args) / len(args) args_Li = [] for num in args: if num > args_sum: args_Li.append(num) return args_sum, args_Li print(caclute(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
实列2
""" 案例二 编写一个函数,接收字符串,返回一个元组 第一个为大写字母的个数,第二个为小写字母的个数 """ def str_Info(Inputstr): upperNum = 0 lowerNum = 0 for s in Inputstr: if s.isupper(): upperNum += 1 elif s.islower(): lowerNum += 1 return upperNum, lowerNum print('大写个数:%d 小写个数:%d' % str_Info(input('Input:')))
实列3
""" 案例3 接收一个列表(包含30个整数)和一个整形数k,返回一个新列表 函数需求 1.将列表下标K子前对应(不包含K)的元素逆序 2.将下标K及之后的元素逆序 [1,2,3,4,5] 2 ----> [2,1,5,4,3] """ import random # def fun(alist,k): # if k<0 or k>len(alist): # return 'error key' # newL1 = alist[:k] # newL2 = newL1[::-1] # newL3 = alist[k:] # newL4 = newL3[::-1] # return newL2 + newL4 # # list = [] # for i in range(30): # num = random.randint(1,100) # if num not in list: # list.append(num) # print(list) # a = fun(list,4) # print(a) def fun(aList,k): if k <0 or k > len(aList): return 'error key' return aList[:k][::-1] + aList[k:][::-1] print(fun([1,2,3,4,5,65],2))