python学习笔记part8:函数

python学习笔记part8

part8:

第八章 函数

#part 8 第八章 函数
#def定义函数 '''   '''注释函数(多行注释)

#我的第一个py函数(鸡冻)
def jiafa(a,b):
	'''加法hhhh'''
	c=a+b
	print(c)
c,d=map(int,input('pls input a&b').split())
jiafa(c,d)


#传递实参的方法
#1.位置实参  就是上面加法函数的那种类型 调用函数时传入的实参要和定义函数时形参的位置顺序对应

#2.关键字实参 调用时(形参=实参,....,形参=实参)不用在意顺序
jiafa(b=d,a=c)

#可以在定义函数时给形参制定具体值(仍可以用关键字调用/位置调用改变之前指定的值)
def jianfa(a,b=0):#不能将带默认值的形参放在不带的前面
	c=a-b
	print(c)
jianfa(2)#如果函数调用时只传入一个实参 则始终认为是对应第一个形参

#返回值
def returnresult(a,b,c):
	d=a+b-c
	return d
result=returnresult(5,4,3)
print('Result:  '+str(result))

#让实参变成可选的 即整一个空默认值  对字符串来说自然是''但是对于int来说呢?
def chooseful(a,b,c=0):
	d=a-c+b
	return d

cresult=chooseful(2,3,1)
print(cresult)
#返回值也可以是列表、字典等

#参数也可以是列表、
def lbcanshu(list1):
	list2=[]
	for one in list1:
		list2.append(one+'2')
	return list2
listt=['hello','world','!']
answer=lbcanshu(listt)
print(answer)
#通过函数修改列表
def changelb(list1):#函数中对列表的修改时永久性的(前提是修改,sortrd()函数就不算修改)
	list1.remove('hello')
	list1.append('add1')
	list1.insert(0,'add3')
	list1.sort()
changelb(listt)
print(listt)
#如果不想让函数永久性修改原列表,而是只需要其修改后的结果作为返回值
#那么就在调用函数时  传递它的副本,这样就只修改了它的副本而保留了原件

#任意数量实参: 如果你不知道函数需要接受多少实参 ,noproblem,py允许这么做
def unknowns(*canshus):      #*canshus 让py创建了一个名为canshus的元组,实际上,所有被传递来的实参都是存在元组里
	sums=0
	for canshu in canshus:  #####不带*
		sums+=canshu
	return sums
print('shoule be 20',unknowns(2,4,6,8))
print('shoule be 0',unknowns())
print('should be 2  ',unknowns(2))
#位置实参+任意数量实参
# 如果函数形参 既有  *未知数量的参数  和  某确定参数,其他形参必须在*形参前面
# Python 先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中
def both(name,*datas):
	print('his name is',name,'and his grades are',datas)
both('Lisa',98,80,83,100)


#任意数量的关键字实参
def keywords(**zidian):
	print(zidian)
keywords(
		key1='values1',
		key2='values2',
		key3=3,)
#写成这个形式 函数就自动存入字典了    输出:{'key1': 'values1', 'key2': 'values2', 'key3': 3}


#将函数存储在模块中
def kuamokuai(*das):
	ret=0
	for da in das:
		ret+=da
	return ret


8.6函数放在模块中

#part8 配套使用  8.6将函数存储在模块中
import part8

print(part8.kuamokuai(2,3,4))
#way 2
from part8 import kuamokuai,unknowns
print(unknowns(1,2,3))

#如果要导入的函数名与本程序函数名或其他要导入的函数名冲突  或者函数名太长 
#可以用as给函数指定别名

from part8 import unknowns as un
print(un(1,2))


也可以给模块(引入函数来自的.py文件)指定名称
import part8 as p8
p8.kuamokuai(2,3)

#倒入模块中的所有函数
from part8 import*
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值