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 函数的初识,实参、形参、的更多相关文章

  1. python基础学习2 函数变量与赋值

    学习的第一步,就是通常的输出函数:print() 1.基础主要学习了变量的赋值,变量名可以疑字母.数字.下划线(_)进行命名,但是不能以数字开头 变量的赋值:变量名 = 变量值 2.模块的导入,和调用 ...

  2. python基础学习Day10 函数形参的动态参数、*args **kwargs 命名空间 global 与 nonlocal

    一.函数形参的动态参数 原因:为了拓展,对于实参数量不固定,故需要万能参数,即动态参数, *args   **kwargs # def sum1(*args): # 在函数定义时,在*位置参数,聚合. ...

  3. Python基础学习之 函数

    阅读目录 第一篇:  函数初识 第二篇:  函数命名空间 作用域 闭包 第三篇:  装饰器 第四篇:  装饰器 面试题错误点 第五篇:  迭代器生成器 第六篇:  生成器进阶 第七篇:  递归 第八篇 ...

  4. Python基础学习四 函数

    1.内置函数 Python内置了很多有用的函数,是可以直接调用的. 参考链接:https://docs.python.org/3/library/functions.html 调用函数的时候,如果传入 ...

  5. python基础一 day9 函数升阶(2)

    def max(a,b): return a if a>b else bprint(max(1, 2)) # 函数进阶# a = 1# def func():# print(a)# func() ...

  6. python基础一 day9 函数升阶(1)

    函数 可读性强 复用性强def 函数名(): 函数体 return 返回值所有的函数 只定义不调用就一定不执行 先定义后调用 函数名() #不接收返回值返回值 = 函数名() #接收返回值 返回值 没 ...

  7. python基础学习Day11 函数名的应用、闭包、迭代器

    一.函数名的应用 1.函数名就是函数的内存地址 def func(): print(666) func() print(func) #函数的内存地址 2.函数名可以作为变量 def func1(): ...

  8. python基础一 day9 函数升阶(3)

    局部命名空间一般之间是独立,局部命名空间是调用函数时生成的函数的名字指向它所在的地址局部不会对全局产生影响,除非加global.# def max(a,b):# return a if a>b ...

  9. python基础学习之函数进阶【匿名函数、作用域关系、闭包、递归】

    匿名函数 lambda的用法: lambda x:x+1 解释,同等于以下函数 def test(x): return x+1 因为没有函数名,所以称为匿名函数 只适用于简易的逻辑,复杂逻辑无法实现 ...

随机推荐

  1. redis如何随系统启动

    Redis可以通过命令redis-server启动,但这种启动方式适用于开发环境,对于生产环境来说,配置好redis的配置文件,并使redis随linux启动则更加方便些,下面则记录下redis如何随 ...

  2. java的Map遍历

    java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点 先初始化一个mappublic ...

  3. Enterprise Library

    https://msdn.microsoft.com/en-us/library/ff648951.aspx

  4. ASP.NET 实现重启系统或关机

    在C#程序中实现电脑的关机.重启,两种方法可以实现: 方法1:启动Shell进程,调用外部命令shutdown.exe来实现. 首先导入命名空间using System.Diagnostics;然后, ...

  5. ChannelSftp 远程下载目录

    ChannelSftp 并不直接支持远程下载目录, 直接下载, 出现 : not supported to get directory ... 需要自己实现, 我的实现如下: /** * @param ...

  6. 转:ArcGIS中利用ArcMap将地理坐标系转换成投影坐标系(从WKID=4326到WKID=102100)

    对于非地理专业的开发人员,对与这些生涩的概念,我们不一定都要了解,但是我们要理解,凡是以经纬度为单位的都是地理坐标系,因为它归根结底是一个椭球体,只不过各个国家为了反映该国家所在区域地球的真实形状,而 ...

  7. idea 未实现接口红线提示,重复代码波浪线提示,自动换行,控制台输出内容自动换行

    01,Could not autowire. No beans of 'UserMapper' type found 01.1,问题描述,通过反射动态实现的接口在调用时会出现以上提示,常见的如 ORM ...

  8. sql server 查看所有表记录数

    SELECT object_name (i.id) TableName, rows as rows FROM sysindexes i INNER JOIN sysObjects o ON (o.id ...

  9. Java快速开发平台强大的代码生成器,JEECG 3.7.5 VUE+ElementUI SPA单页面应用版本发布

    JEECG 3.7.5 VUE+ElementUI SPA单页面应用版本发布 此版本为Vue+ElementUI SPA单页面应用版本,提供新一代风格代码生成器模板,采用Vue技术,提供两套精美模板E ...

  10. UI5-Fiori初学者导航

    正文 你是UI5和Fiori的新手?来对地方了. 对我来说,今年是不得不“跟上时代”去提升自己ABAP世界以外的技术技能的困难的一年.幸运的是,有很多可免费获得的信息和课程可以帮你实现这个跳跃.不要等 ...