python基础学习Day9 函数的初识,实参、形参、
1、函数
def my_len():
l = [,,,,,,]
count =
for i in l:
count +=
print(count)
my_len()
定义的my_len()方法时,其结果也可以直接获取。
这里,我们将my_len()称为执行函数,其组成是由 :函数名()。
函数的优点:
1. 函数可以减少代码的重复性
2. 函数可以增强代码的阅读性
2、return的作用
def func1():
a =
b =
c = a + b
return c
print(func1())
1. 函数中如果遇到return,则直接结束函数
2. 给函数中的执行者(函数名():整体是函数的执行者)返回值
3. return 返回单个值,即原封不动的返回(是什么类型,就返回什么类型值)
4. return 返回多个值,即返回一个元组,所有值都是元组的一个元素
注:在工作中,通常函数尽量不要使用print。
def func_1():
a =
b =
c = a + b
d = [,,]
e = (,,)
f = 'Chris'
return c,d,e,f
print(func_1()) # (, [, , ], (, , ), 'Chris')
3、实参
3.1位置实参 按照顺序,一一对应
def func1(x,y):
print(x,y)
print(,)
3.2 关键字参数 可以不按照舒服,但是要一一对应
def func2 (x,y):
return x + y
print(func2(y = ,x = ))
3.3 混合参数 可以不按照顺序,但是要一一对应
def func1(a,b,x,y):
return a + b + x + y
print(func1(,,y= ,x= )) def func1(a,b,n,x,y):
return a + b + x + y
name = 'Chris'
print(func1( , , name, y= , x= )) # name是位置参数
4、形参
4.1 位置参数:按照顺序一一对应
def func(x,y,z):
print(x,y,z)
func(,,)
4.2 默认参数:给其传参,将默认参数覆盖,不传值时不报错,使用默认值
def func1(x,y,a= ):
print(x,y,a)
func1(,) # 不传参,则为默认值 (1 2 666 )
func1(,,) # 传参,则将默认值覆盖 (1 2 256)
应用场合:不机场改变参数,但是一直再用
不断输入个人信息,如姓名与性别。并将信息写入文件中
方法一:
while :
name,sex = input('请输入姓名与性别,中间用逗号分隔:').strip().replace(',',',').split(',')
if name.upper() == 'Q':
break
with open('a1.txt',encoding='utf-8',mode= 'a') as f1:
f1.write('{}|{}\n'.format(name,sex))
方法二:
def namelist(name,sex = '男'):
with open('a1.txt',encoding='utf-8',mode='a') as f1:
f1.write('{}|{}\n'.format(name,sex))
while :
name,sex = input('请输入姓名,性别').strip().replace(',',',').split(',')
if name.upper() == 'Q':
break
if sex.strip():
namelist(name ,sex)
else:
namelist(name)
namelist(name,sex)
默认参数的陷阱
默认参数若是可变数据类型(如:list),但他始终使用的是一个,即默认参数公用一个内存地址。
def func1(x,l1=[]):
l1.append(x)
return l1
ret = func1()
print(ret,id(ret)) # []
ret2 = func1()
print(ret2,id(ret2)) # [, ]
python基础学习Day9 函数的初识,实参、形参、的更多相关文章
- python基础学习2 函数变量与赋值
学习的第一步,就是通常的输出函数:print() 1.基础主要学习了变量的赋值,变量名可以疑字母.数字.下划线(_)进行命名,但是不能以数字开头 变量的赋值:变量名 = 变量值 2.模块的导入,和调用 ...
- python基础学习Day10 函数形参的动态参数、*args **kwargs 命名空间 global 与 nonlocal
一.函数形参的动态参数 原因:为了拓展,对于实参数量不固定,故需要万能参数,即动态参数, *args **kwargs # def sum1(*args): # 在函数定义时,在*位置参数,聚合. ...
- Python基础学习之 函数
阅读目录 第一篇: 函数初识 第二篇: 函数命名空间 作用域 闭包 第三篇: 装饰器 第四篇: 装饰器 面试题错误点 第五篇: 迭代器生成器 第六篇: 生成器进阶 第七篇: 递归 第八篇 ...
- Python基础学习四 函数
1.内置函数 Python内置了很多有用的函数,是可以直接调用的. 参考链接:https://docs.python.org/3/library/functions.html 调用函数的时候,如果传入 ...
- python基础一 day9 函数升阶(2)
def max(a,b): return a if a>b else bprint(max(1, 2)) # 函数进阶# a = 1# def func():# print(a)# func() ...
- python基础一 day9 函数升阶(1)
函数 可读性强 复用性强def 函数名(): 函数体 return 返回值所有的函数 只定义不调用就一定不执行 先定义后调用 函数名() #不接收返回值返回值 = 函数名() #接收返回值 返回值 没 ...
- python基础学习Day11 函数名的应用、闭包、迭代器
一.函数名的应用 1.函数名就是函数的内存地址 def func(): print(666) func() print(func) #函数的内存地址 2.函数名可以作为变量 def func1(): ...
- python基础一 day9 函数升阶(3)
局部命名空间一般之间是独立,局部命名空间是调用函数时生成的函数的名字指向它所在的地址局部不会对全局产生影响,除非加global.# def max(a,b):# return a if a>b ...
- python基础学习之函数进阶【匿名函数、作用域关系、闭包、递归】
匿名函数 lambda的用法: lambda x:x+1 解释,同等于以下函数 def test(x): return x+1 因为没有函数名,所以称为匿名函数 只适用于简易的逻辑,复杂逻辑无法实现 ...
随机推荐
- Android Activity传递数据使用getIntent()接收不到,揭秘Intent传递数据与Activity启动模式singleTask的关系。
activity通过intent传递数据的时候,如果activity未启动,那么在这个刚启动的activity里通过getIntent()会获取到这个intent的数据.. 如果要启动的activit ...
- solr使用cursorMark做深度分页
深度分页 深度分页是指给搜索结果指定一个很大的起始位移. 普通分页在给定一个大的起始位移时效率十分低下,例如start=1000000,rows=10的查询,搜索引擎需要找到前1000010条记录然后 ...
- 安装Thinkphp5
Thinkphp完全开发手册地址:https://www.kancloud.cn/manual/thinkphp5/118006 1.安装扩展mbstring扩展:sudo apt-get insta ...
- day23面向对象编程基础
面向对象编程基础1.面向过程的编程思想 核心过程二字,过程指的是解决问题的步骤,即先干什么\再干什么\后干什么 基于该思想编写程序就好比在设计一条流水线,是一种机械式的思维方式 优点 ...
- dubbo-文档
Srping版Dubbo集成中文地址:https://dubbo.gitbooks.io/dubbo-user-book/content/preface/background.html SpringB ...
- 【Jmeter自学】jmeter实战-其他请求和总结(七)
FTP测试 步骤:其他的结果树等跟http请求一样 mysql数据库测试 JDBC请求 Jmeter-分布式性能测试 jmeter结果分析:
- [UnityShader基础]02.深度测试 & 深度写入
参考链接: https://blog.csdn.net/v_xchen_v/article/details/79380222 前面说到了渲染队列,对于两个不透明的物体A和B,它们处于同一个渲染队列中. ...
- 42.scrapy爬取数据入库mongodb
scrapy爬虫采集数据存入mongodb采集效果如图: 1.首先开启服务切换到mongodb的bin目录下 命令:mongod --dbpath e:\data\db 另开黑窗口 命令:mongo. ...
- 27.Docker集群部署
对于scrapy的部署方式 1.Scrapyd 安装扩展组件,远程控制scrapy任务,包括部署源代码,启动任务,监听任务.scrapy-client .scrapyd api 协助完成部署和监听操作 ...
- 3.div+css 的布局较 table 布局有什么优点
改版的时候更方便,只需改css文件. 页面加载速度更快.结构化清晰.页面显示简介. 表现与结构相分离. 已于优化搜索引擎更友好,排名更容易靠前.