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 因为没有函数名,所以称为匿名函数 只适用于简易的逻辑,复杂逻辑无法实现 ...
随机推荐
- .Net 大型分布式基础服务架构横向演变概述(转)
一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控. 二. 基础 ...
- Redis数据结构深入解析
- CentOS 7安装Oracle 12c
1.root身份安装依赖包: yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 ...
- ubantu 操作
应用程序启动器“monodevelop.desktop”还没有被标记为可信任的. 于是在网上查询解决方案,在ubuntu中文论坛找到一个帖子提到这个问题的解决方法,尝试之解决. 帖子地址:http:/ ...
- netfilter/iptables
参考:tcp/ip协议 1.Linux框架概念 1.1.工作流程图 1.2.功能: ①过滤(filter) ②修改源ip.目标ip(nat) ③拆解报文.修改报文标记.重新封装(mangle) ④关闭 ...
- wmware虚拟机的克隆
VMware 支持两种类型的克隆:完整克隆 链接克隆 完整克隆是和原始虚拟机完全独立的一个拷贝,它不和原始虚拟机共享任何资源.可以脱离原始虚拟机独立使用. 链接克隆需要和原始虚拟机共享同一虚拟磁盘文件 ...
- 学生管理系统.c
直接贴代码了 另有:python调用c程序的实现 #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace st ...
- uva-10422-骑士-搜索题
题意: 给你一个5X5的图,棋盘上骑士的走法自己去百度,问能不能在10步内走到目标图, 解题思路: 从目标图开始往前走10步,保存所有能走到的图,然后输入,查找是否存在这个图,存在就是可以走到,不存在 ...
- 流程图工具Visual Paradigm for UML
- Mysql 多字段去重
使用group by去重现在有如下表 id name age1 张三 232 李四 343 张三 234 李四 32 需求 : 按照name和age字段联合去重 sql如下 select * from ...