Python基础—函数(Day9)
一、函数的定义
- def 关键字,定义一个函数
my_len 函数名(书写规则与变量名一样)
def与函数名中间一个空格。
def与函数名中间一个空格。
函数名():加冒号
函数体
my_len()#函数的执行:函数名+()
函数是从上到下依次执行,将函数名加载到内存,函数体放到一个临时存储空间,见到函数名执行。
# li=[1,2,2,4,6,7,4,5]
# def my_len():
# count=0
# for i in li:
# count+=1
# my_len()
二、函数的返回值
return
1.在函数中遇到return结束函数。
def fun():
print(111)
return
print(222)
a=fun()
print(a)
执行结果:
111
None
2.将值返回给函数的调用者。
1)无return 返回None
2)只写renturn None。
3)return 一个值,该值是什么就直接返回给函数的调用者,函数名()
def mylen():
s1='hello world'
length=0
for i in s1:
length=length+1
return length
str_len=mylen()
print('str_len: %s'%str_len) 执行结果:
str_len: 11
4)return多个值,将多个值放到一个元组里,返回给函数的调用者
def fun():
return 1,2,[3,4],'guo'
print(222)
a=fun()
print(a) 执行结果:
(1, 2, [3, 4], 'guo')
三、函数的参数
1.实参
1)位置传参:按顺序一一对应。
def func(a,b,c):
print(a)
print(b)
print(c)
func(1,2,3) 1
2
3
#写一个函数功能比大小
def max_min(a,b):
if a>b:
return a
else:
return b
print(max_min(100,20))
#可以用三元运算符来写:
def max_min(a,b):
return a if a > b else b
print(max_min(100,20))
2)关键字传参:不按顺序,按关键字一一对应。
def max_min(a,b):
return a if a > b else b
print(max_min(b=200,a=100)) 200
3)位置和关键字混合传参:关键字参数在最后,位置一一对应。
def fun(a,b,c,d):
print(a)
print(b)
print(c)
print(d)
fun(1,2,c=3,d=4)
fun(a=1,b=2,3,4)#关键字参数在前面会报错
2.形参
1)位置传参:按顺序一一对应。
def func(a,b,c):
print(a)
print(b)
print(c)
func('ssdd',3,4)
ssdd
3
4
2)默认参数:传参则覆盖,不传则默认,默认参数在位置参数后面。
def func(a,b=22):
print(a,b)
func(11,33) #11 33 传参则覆盖原来的22 def func(a,b=22):
print(a,b)
func(11) #11 22 不传参默认原来的参数
3.动态参数(万能参数)
*args接收的是实参对应的所有位置参数,并将其放在元组中。
def func(*args):
print(args)
func(1,2,3,4,5,6) 执行结果:
(1, 2, 3, 4, 5, 6)
**kwargs将所有的关键字参数(无实参对应的关键字参数)放到一个字典中。
def func(a,b,c,**kwargs):
print(kwargs)
func(1,2,r=4,b1=5,c1=6,c=7) 执行结果:
{'c1': 6, 'r': 4, 'b1': 5}
形参的最终顺序:位置参数,*args,默认参数,**kwargs.
def func(a,b,c,*args,d='男',**kwargs):
print(a)
print(b)
print(c)
print(args)
print(d)
print(kwargs)
func(1,2,3,4,5,6,7,d='女',v=8,m=9,f=22)
执行结果:
1
2
3
(4, 5, 6, 7)
女
{'m': 9, 'v': 8, 'f': 22}
*的魔法运用:
1.在函数的调用执行时:
*+可迭代对象,代表打散list,tuple,str,dict(键),将元素一一添加到args。
**+字典,代表打散,将所有键值对放到一个kwargs字典里。
def func(*args):
print(args)
l1=[1,2,3,]
l2=[1,2,3,22,33,44]
tu=(1,2,3)
func(*'fgjjkkll')
func(*l1,*l2) #函数的调用
func(*tu)
func(*{'name':'guo','age':'18'})#键添加到args 执行结果:
('f', 'g', 'j', 'j', 'k', 'k', 'l', 'l')
(1, 2, 3, 1, 2, 3, 22, 33, 44)
(1, 2, 3)
('age', 'name')
def func(**kwargs):
print(kwargs)
dic1={'name1':'guo','age1':'18'}
dic2={'name':'tu','age':'45'}
func(**dic1,**dic2) 执行结果:
{'name1': 'guo', 'name': 'tu', 'age1': '18', 'age': '45'}
2.在函数定义时,*args,**kwargs代表的是聚合。
def func(*args,**kwargs):
print(args)
print(kwargs)
dic1={'name1':'guo','age1':'18'}
dic2={'name':'tu','age':'45'}
func(*[1,2,3,4,5],*'fghj',**dic1,**dic2) 执行结果:
(1, 2, 3, 4, 5, 'f', 'g', 'h', 'j')
{'age1': '18', 'age': '45', 'name': 'tu', 'name1': 'guo'}
练习题
编写名单文件
def Infor_entry(username,sex='男'):
with open('name_list',encoding='utf-8',mode='a') as f:
f.write('{}\t{}\n'.format(username,sex))
while True:
username=input('请输入姓名(男生以1开头):').strip()
if '1'in username:
username=username[1:]
Infor_entry(username)
else:
Infor_entry(username,'女')
Python基础—函数(Day9)的更多相关文章
- python基础——函数的参数
python基础——函数的参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复 ...
- python基础—函数嵌套与闭包
python基础-函数嵌套与闭包 1.名称空间与作用域 1 名称空间分为: 1 内置名称空间 内置在解释器中的名称 2 全局名称空间 顶头写的名称 3 局部名称空间 2 找一个名称的查找顺序: ...
- python基础—函数装饰器
python基础-函数装饰器 1.什么是装饰器 装饰器本质上是一个python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能. 装饰器的返回值是也是一个函数对象. 装饰器经常用于有切 ...
- Python基础-函数参数
Python基础-函数参数 写在前面 如非特别说明,下文均基于Python3 摘要 本文详细介绍了函数的各种形参类型,包括位置参数,默认参数值,关键字参数,任意参数列表,强制关键字参数:也介绍了调用函 ...
- python基础,函数,面向对象,模块练习
---恢复内容开始--- python基础,函数,面向对象,模块练习 1,简述python中基本数据类型中表示False的数据有哪些? # [] {} () None 0 2,位和字节的关系? # ...
- 第三章:Python基础の函数和文件操作实战
本課主題 Set 集合和操作实战 函数介紹和操作实战 参数的深入介绍和操作实战 format 函数操作实战 lambda 表达式介绍 文件操作函数介紹和操作实战 本周作业 Set 集合和操作实战 Se ...
- Python基础-函数篇
本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 函数与函数式编程 1.面向对象: 华山派-- ...
- python基础——函数
1.内置函数的调用: 可以在官方网站查找内置函数及说明,也可以通过help(abs)函数查看相应的信息. https://docs.python.org/3/library/functions.htm ...
- Python基础(函数,函数的定义,函数的调用,函数的参数,递归函数)
1.函数 我们知道圆的面积计算公式为: S = πr2 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = ...
- Python 全栈开发四 python基础 函数
一.函数的基本语法和特性 函数的定义 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的.函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数 ...
随机推荐
- Hive分析统计离线日志信息
关注公众号:分享电脑学习回复"百度云盘" 可以免费获取所有学习文档的代码(不定期更新)云盘目录说明:tools目录是安装包res 目录是每一个课件对应的代码和资源等doc 目录是一 ...
- POJ prime distance
https://oj.shiyancang.cn/Problem/781.html 素数距离,数据范围21亿,如果用素数筛存,并且进行做的话,按照x/lnx计算会是一个非常恐怖的复杂度.确定要做什么, ...
- CVE-2020-0786(永恒之黑) GetShell
描述 Microsoft服务器消息块3.1.1(SMBv3)协议处理某些请求的方式中存在一个远程执行代码漏洞,也称为" Windows SMBv3客户端/服务器远程执行代码漏洞". ...
- 从头造轮子:python3 asyncio之 gather (3)
前言 书接上文:,本文造第三个轮子,也是asyncio包里面非常常用的一个函数gather 一.知识准备 ● 相对于前两个函数,gather的使用频率更高,因为它支持多个协程任务"同时&qu ...
- Rust 实现Netty HashedWheelTimer时间轮
目录 一.背景 二.延迟队列-时间轮 三.Netty 时间轮源码分析 四.Rust实现HashedWheelTimer 五.总结思考 一.背景 近期在内网上看到一篇文章,文中提到的场景是 系统自动取消 ...
- Sping简介
SSH:Struct2 + Spring +Hibernate SSM:SpringMVC + Spring + Mybatis 优点 1,Sping是一个开源的免费的框架(容器) 2,Spirng是 ...
- from 表单上传文件和下载?
from表单上传单个文件的方法. 分为三个部分,简单演示. 一部分 表单上传文件 <%-- Created by IntelliJ IDEA. User: Administrator Date: ...
- c#序列化和反序列化《转载》
(一)使用总体说明 .net framework的类库中提供了三个可以用于序列化和反序列化的类,分别为BinaryFormatter.SoapFormatter和XmlSerializer. Bina ...
- 微信公众号之微信登录失败,redirect_uri域名与后台配置不一致,错误代码10003
前几次也遇到过这个问题:没有注意,今天记一下 解决:把你出错页面的url复制出来,看下域名是多少,然后在相应的微信公众号位置加上该域名即可 第一步:登录微信公众号: 第二步:将文件下载后,利用工具传入 ...
- transition过渡2D、3D效果
过渡(transition)是CSS3中具有颠覆性的特征之一,我们可以在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果. 帧动画:通过一帧 ...