当前位置: 首页 > article >正文

新手学习Python第七天-新手笔记

07:45达到实验室,已经把昨天的内容复习完了,开始现在的学习

————08:00——————

1.函数的返回值

if i % 2:    非零值被视为真(True),而零值被视为假(False)

——刚才导师来了。聊了比较久。老师可以为我的课题研究方向买ROS小车了。太开心了!!!

呜呜呜~~~一定要好好学习,多发文章,不负老师希望。——08:43开始学习

写一下奇偶数分类的的代码,理解这个返回值

def fun(num):
    odd=[]
    even=[]
    for i in num:
        if i%2:
            odd.append(i)
        else:
            odd.append(i)
    return odd,even
lst=[22,44,55,12,17]
a=fun(lst)
print(a)

——老师找我们开个组会——  08:52

函数的返回值:

1.若函数没有返回值(函数执行完毕之后,不需要给调用数据), return可不写。

2.函数的返回值,若是1个,直接返回原值

3.函数的返回值若是多个,返回的结果为元组

这里我写一下三种情况:

1.第一种情况的:

def fun1():
    print('hello')    看到没有,执行就完事了,不需要有返回值,就能直接出结果的这种
fun1()

2.第二种情况:

def fun2():
    return('hello')       #直接像print那样直接出结果 所以就直接返回原值

b=fun2()
print(b)

————刚刚干完活现在15:49————

3.第三种情况:

def fun():     #先定义一个函数为fun(),记得加:
    return 'hello','world'    #返回的是多个值

s=fun()          
print(s)    #结果为元组的形式

总结一下:我是这样来理解的就是如果你对于让定义的函数直接显示出来的话,那么直接就不用返回值;返回值在写的时候是return,需要用print(),出来,如果是print(),没有return,那么你可以直接写函数,运行就会显示出来。

再来个综合吧:

def fun():
    print('hello')
fun()               #第一种情况 不要return

def  fun1():
    return('hello')
print(fun1())         #第二种情况,对于单个值而言返回原类型。
def fun2():
    return('hello','world')
a=fun2()
print(a)        #第三种情况,对于返回多个值而言,返回的是元组。

2.函数的参数定义

函数定义默认值参数,有两种情况,第一种

def fun(a,b=10):
    print(a,b)

fun(100)        #只有一个参数,默认把值给第一个。
fun(20,30)      #这里的20给第一个,30给第二个参数。将10代替。

2.1个数可变的位置参数:

1.无法事先确定传递的位置实参的个数时,使用可变的位置参数

例如:

def fun(*args):   #函数定义时,可变的位置参数
    print(args)

fun(10)   
fun(10,30)
fun(10,30,40)    #按照顺序传

利用索引位置

2. 使用*定义个数可变的位置形参

3.结果为一个元组

2.2 可变的关键字形参

1.无法事先确定传递的关键字实参的个数时,使用可变的位置参数

2. 使用**定义个数可变的关键字形参

3.结果为字典

例如:

def fun1(**args):
    print(args)
fun1(a=10,b=20,c=30)  
fun1(f=60)    

可以知道使用**确定的是关键字位置,结果输出为字典。

还有一点需要注意的是:

print('hello', end='\t')  # 打印 'hello' 后跟一个制表符
print('world')  # 打印 'world',并在末尾添加换行符

这里要用‘end=’就可以了  。

报错情况:

def fun(*args,*agrs):        #个数可变的位置参数
    pass
def fun (**agrs,**args):     #个数可变的形式参数
    passg

个数可变的位置参数以及个数可变的关键字参数。都只能是一个,超过一个就会报错。

2.3 都有的情况:

def fun1(*args,**agrs):
    pass
def fun2(**args,**args):
    pass

注意:若既要含有位置形参还有关键字形参,那么要把个数可变的位置形参放在个数可变的关键字形参前面

2.4函数的参数总结:

2.4.1 位置参数:

def fun(a,b,c):
    print(a,end='\t')
    print(b,end='\t')
    print(c,end='\t')
fun(80,90,50)

这就是位置形参。

2.4.2 看下列表的:

def fun(a,b,c):
    print(a,end='\t')
    print(b,end='\t')
    print(c,end='\t')
fun(80,90,50)
lst=[20,30,40]
a=fun(*lst)

列表如果直接输出,那么会报错。因为它这个里面是三个元素,而列表是一个整体为一个元素。

需要在列表函数定义的名字前面+* 就可以了。

2.4.3 看下字典的

def fun(a,b,c):
    print(a,end='\t')
    print(b,end='\t')
    print(c,end='\t')
dict ={'a':100,'b':200,'c':300}
v=fun(**dict)

与列表相同,在字典定义的函数名字前面加*,但是两个**

2.5函数参数的各类总结

2.5.1  默认值形参

def fun1(a,b=10):
    print(a,b)

fun1(10,20) 10给a,20给b

2.5.2 个数可变的位置形参

def fun2(*args):
    print(agrs)     

有一个*记住

2.5.3 个数可变的关键字形参

def fun3 (**args):
    print(args)

2.5.4 位置实际传参:

fun2(10,30,40,50)

2.5.5 关键字实参传递:

fun3(a=10,b=20,c=30)

2.5.6 混合参数传递:

def fun4(a,b,c,d):
    print(a)
    print(b)
    print(c)
    print(d)   
fun4(a=10,b=20,c=30,d=40)   关键字实参
fun4(10,20,30,40)           位置实参
fun4(10,20,c=30,d=40)    前面位置实参+后面的关键字实参
fun4(10,20,c=30,d=40)     
def fun4(a,b,* ,c,d):   加入*号之后,这些函数在调用的时候,只能采用关键字参数传递,我们把这个*就叫做关键字形参
    print(a)
    print(b)
    print(c)
    print(d)

fun4(10,20,c=30,d=40)    

函数定义时的形参的顺序问题

def fun1(a,b,*,c,d,**args):    
    pass
def fun2(*args,**args):
    pass
def fun3(a,b=10,**args):
    pass

以上这三种情况都是可以的, 都把关键字形参放入后面。

3.变量的作用域:

3.1关于局部变量

举个例子:

def fun(a,b):
    c=a+b         
    return(c)

我们看下这个c就被称为局部变量,因为c是在函数体内进行定义的变量,a与b为函数的形参,作用范围也是函数内部,相当于局部变量。

3.2 作用域

def fun(a,b):
    c=a+b
    return(c)
print(a)
print(c)

这样就会报错,因为abc是局部变量,一个是在函数体一个是在fun(),都在他们内部进行,进行完作用效果也就消失了,所以你再去用它的话会报错,需要重新定义变量激活它。即超出了作用域

3.3 全局变量

name ='孙老师'
def fun():
    print(name)
fun()  

这个name变量在外面,所以就是全局变量,都可以用它。

def fun():
    age=20           函数体
    print(age)
fun()              使用这个函数,就会执行函数体显示20出来
fun(age)          但这个age属于局部变量,运行就会报错

所以要弄一下全局变量 怎么实现呢?

只需要在函数体中的那个定义类变量前面+一个”global"

def fun():
     global age
     age=20
     print(age)
fun()
print(age)

局部变量使用golobal声明那就是全局变量了。

总结:21:32   还差30节课学完 明天继续加油!


http://www.kler.cn/a/309903.html

相关文章:

  • MySQL远程连接错误解决:Host is not allowed to connect to this MySQL server
  • F5全新报告揭示AI时代API安全面临严峻挑战
  • 由于找不到mfc120u.dll, 无法继续执行代码。重新安装程序可能解决引问题。
  • 100+SCI科研绘图系列教程(R和python)
  • Go语言中的`io.Pipe`:实现进程间通信的利器
  • 大模型开发整体流程 基于个人知识库的问答助手 项目流程架构解析
  • 基于STM32C8T6的CubeMX:HAL库点亮LED
  • Datawhale X 李宏毅苹果书 AI夏令营 《深度学习详解》第十九章 ChatGPT
  • Python 入门教程(3)基础知识 | 3.6、标准输入与输出
  • c++----模板(进阶)
  • 什么是VHDX文件?
  • 国科云域名解析课堂:一个域名可以解析到多个IP地址吗?
  • 高校能耗管控方案如何做到节能减排
  • 【Python123题库】#绘制温度曲线 #XRD谱图绘制 #态密度曲线绘制
  • 3个WebSocket的.Net开源项目
  • 基于vue框架的宠物店管理系统的设计与实现4czn0(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • StackTrace在.Net中获取当前线程的堆栈跟踪信息
  • 【MySQL】MySQL连接池原理与简易网站数据流动是如何进行
  • mysql笔记7(单表查询)
  • 计算机毕业设计 健身房管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • Github 2024-09-12 Go开源项目日报Top10
  • 智能车镜头组入门(二)电路硬件的设计
  • mysql的高级查询:函数的运用(日期/数字/字符/聚合)及分组查询
  • 清理C盘缓存的垃圾,专业清理C盘缓存垃圾的步骤与策略
  • 深度学习-点击率预估-研究论文2024-09-14速读
  • LeetCode 每日一题 2024/9/9-2024/9/15