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 因为没有函数名,所以称为匿名函数 只适用于简易的逻辑,复杂逻辑无法实现 ...
随机推荐
- 使用Handlerf发送消息或使用Handler轮询时,报错IllegalStateException:This message is already in use.;
java.lang.IllegalStateException: { when=-107ms what=9 obj=com.saicmaxus.maxuslife.model.CarInfo@be47 ...
- gt,gte,lt,lte缩写的含义
gt: greater than 大于 gte: greater than or equal 大于等于 lt: less than 小于 lte: less than or equal 小于等于
- vue 整合element-ui
本文主要介绍如何在vue框架中结合elementUI. 本文主要参考: http://element-cn.eleme.io/#/zh-CN/component/quickstart 1.阅读本文 ...
- Basler和Matrox的配置及调试
说明: 本系列博文是我自己研究生课题,采用做一步记录一步,在论文答辩结束或者机器设计结束之后才会附上源代码! 自从装好相机和设计好机械结构之后就没有继续进行下一步,这段时间花了三四天继续上次任务进行, ...
- java 创建简单工厂模式
1.抽象类 package com.zpark.service; /** * 定义一个环境接口,所有省治理环境的方式都实现这个接口,并重写治理环境的方法 * @author tong * */ pub ...
- php用户名密码
http://112.124.47.59:8090/activity/index/free?mobile=15652701923&tcode=f9380859085200714&s=7 ...
- CentOS7 安装 Mongodb 与 NodeJs 主要心得
一.mongodb 1.安装 由于使用yum源下载安装总是超时,所以选择了tarball方式安装. 官方安装方法链接,https://docs.mongodb.com/manual/tutorial/ ...
- Feign 的简单使用(2)
依赖: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>sp ...
- Linux 设置IP地址,并能连接外网
1,如果是 centos6,请修改 vi /etc/sysconfig/network-scripts/ifcfg-eth0 2,如果是 centos7,请修改 => vi /etc/sysc ...
- kubernetes添加删除重启节点
1.添加节点 (master)查看目前节点 [root@k8s-master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-maste ...