python(day007——函数2)

基于Python+OpenCV的车流识别系统Day3 今天实现两个模块——车辆图片识别和车辆视频识别。中的打开文件按钮打开图片。可以直接点按钮导入视频并识别,按'e'或'E'退出播放。 阅读详情

1.函数的返回值

>>> def get_values():
...     return 1,2,3
...
>>> print(get_values())
(1, 2, 3)
#函数的返回值只能是一个值,返回多个内容时会组成一个“tuple”返回
#可用列表实现返回多个值
>>> type(get_values())
<class 'tuple'>
>>> for i in get_values():
...     print(i)
...
1
2
3

2.局部变量和全局变量

>>> def a():
...   x=100
...   print(x)  #x(局部变量)在函数中,在函数外不能访问无意义
...
>>> x   
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined


>>> x=100  #普通变量
>>> def a():
...    print(x)
...
>>> a()
100

>>> x=100
>>> def a():
...     x=6
...     print(x)
...
>>> a()
6
>>> x
100

"""
1 x(局部变量)在函数里面有一个且赋值了,在函数外面也有一个x。
那么两个x都是互相独立,不干扰的。

2 x在函数里面有一个且没有赋值了,在函数外面也有一个x。
这两个x是同一个值。

3 x在函数里面有一个且赋值了,在函数外面也有一个x,
想让这两个x关联在一起,使用global
"""

>>> x=100
>>> def a():
...     global x #全局变量
...     print(x)
...     x=123
...     return x
...
>>> x
100
>>> a()
100
123
>>> x=939
>>> a()
939
123


>>> s=100
>>> def ss():
...    s=s+1
...
>>> ss()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in ss
UnboundLocalError: local variable 's' referenced before assignment

全局变量名和函数名不能相同。此外,若局部变量名与全局变量名或函数名相同,则在该局部变量作用范围内不能使用相应的全局变量或函数。 

3.不可变参数和可变参数

可变类型 Vs 不可变类型

可变类型(mutable):列表,字典

不可变类型(unmutable):数字,字符串,元组

这里的可变不可变,是指内存中的那块内容(value)是否可以被改变

#不可变参数
>>> s='abc'  #不可变类型
>>> def func(a):
...    a=a+'d'
...    return a
...
>>> s
'abc'
>>> print(func(s))
abcd
>>> s
'abc'
>>>
>>>
>>> l=[1,2,3]  #可变类型
>>> def funb(b):
...     b.append(4)
...     return b
...
>>> print(funb(l))
[1, 2, 3, 4]
>>> l  #list改变
[1, 2, 3, 4]

*如何保证传入参数list不变

>>> print(funb(list(l)))  #相当于传入list(l)为参数,不会改变原有l
[1, 2, 3, 4]
>>> l
[1, 2, 3]

*参数有默认值

>>> def func(a=100):
...    print(a)
...
>>> func()  #若没有默认值,则此调用方法会报错
100
>>> func(200)
200

#默认值参数须放在非默认值参数之后
>>> def func(a=100,b):
...     print(a,b)
...
  File "<stdin>", line 1
SyntaxError: non-default argument follows default argument
>>> def func(b,a=100):
...    print(a,b)
...
>>> func(1)
100 1
>>> func(1,2)
2 1
>>> func(a=1,b=2)
1 2

*可变参数

>>> def func(a,b,*c):
...    print(a)
...    print(b)
...    print(type(c))
...    print(c)
...
>>> func(1,2)
1
2
<class 'tuple'>
()
>>> func(1,2,3,4,5)
1
2
<class 'tuple'>
(3, 4, 5)

#所有参数求和
>>> def func(a,b,*c):  #可变参数
...     result=0
...     result+=a
...     result+=b
...     for i in c:
...        result+=i
...     return result
...
>>> func(1,2)
3
>>> func(1,2,4)
7
>>> func(1,2,4,2,3)
12

 

>>> def fund(a,b,**d):
...    print(a)
...    print(b)
...    print(type(d))
...    print(d)
...
>>> fund(1,2,m=3,n=5)
1
2
<class 'dict'>
{'m': 3, 'n': 5}
>>> fund(1,2)
1
2
<class 'dict'>
{}


#所有参数求和
>>> def fund(a,b,**d):
...    result=0
...    result=a+b
...    for i in d.values():
...         result+=i
...    return result
...
>>> fund(1,2,m=3,n=5)
11
>>> fund(1,2,m=3,n=5,c=332)
343

>>> def fund(a,b,*c,**d):
...    result=0
...    result=a+b
...    for i in c:
...         result+=i
...    for i in d.values():
...         result+=i
...    return result
...
>>> fund(1,2,3,4,21,5,m=2,o=3,t=3)
44


#解包:*是list和tuple解包,**是dict解包
>>> fund(1,2,3,4,[1,2,3],m=2,o=3,t=3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 5, in fund
TypeError: unsupported operand type(s) for +=: 'int' and 'list'
>>> fund(1,2,3,4,*[1,2,3],m=2,o=3,t=3)  #list不能直接传,需要用*进行“解包”操作
#以上代码相当于fund(1,2,3,4,1,2,3,m=2,o=3,t=3)
24


>>> s
{'x': 9, 'y': 4}
>>> fund(1,2,3,4,s,m=2,o=3,t=3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 5, in fund
TypeError: unsupported operand type(s) for +=: 'int' and 'dict'
>>> fund(1,2,3,4,**s,m=2,o=3,t=3)
31

4.lambda函数(匿名函数)

>>> y=lambda x:x+1
>>> y   #y只是存储lambda函数的变量
<function <lambda> at 0x0000016D4D6329D8>
>>> y(1)
2
>>> y=lambda x,y:x*y
>>> y(3,4)
12
>>> m=y
>>> m
<function <lambda> at 0x0000016D4D636318>
>>> m(4,5)
20

 

外部ADC之AD7949——14bit、8通道、250k 在实际项目中,仅靠单片机内部的ADC采样,很有可能达不到实际采样精度,这个时候就需要外接外部ADC芯片进行采样,这些外部ADC一般都是SPI接口或者是并口。单片机通过SPI接口或并口读写芯片内部寄存器,配置参考极性、采样通道、低通滤波器带宽、基准电压源、通道序列器等。本文主要对ADI家的14bit、8通道、250k的ADC7949做一个总结,这款ADC在实际项目中使用,采样精度达到要求,读取时序有点点绕,但是是一款十分常用的ADC芯片。就是价格不太友好哈哈,一块芯片快60。 阅读详情

相关推荐

Sony DPT RP1/CP1破解攻略

前言 自己有一台Sony DPT CP1和一台kindle,两个都已经用了很多年。直到最近发现微信读书上经常可以找到一些免费而且不错的书,所以就萌生了在两台机器上使用微信读书的想法。kindle比较容易实现,直接打开内置浏览器,进入微信读书网页版就行了,而Sony的电纸书则只能通过破解+安装微信读书的方式实现。大概弄了两三个小时吧,也遇到了一些问题,所以这里记录一下整个过程,希望能方便后来的使用者。 首先感谢HappyZ, osc_t5nbj8ds。前者是提供公开破解的方法的大神,后者则是解决了我遇到的问题

weixin_43467572的博客 1万+

python基础1

一、print打印使用 1、打印字符串,print("") &gt;&gt;print("hello 2018") hello 2018 常见的占位符有: 占位符 替换内容 %d 整数 %f 浮点数 %s 字符串 %x 十六进制整数 如果只是想显示2位小数点数值,则可以这样子 s1 = 72 s2 = 85 r = (s2-s1)/s1 print('成绩提升了:%.2f%%'%r)...

IDIOThh的博客 686

【实战技巧】matplotlib中文标签显示问题的3种高效解决方案

本文详细介绍了解决matplotlib中文标签显示问题的3种高效方法,包括修改字体设置、临时指定字体和修改后端配置。针对不同操作系统和环境提供了实用技巧,帮助开发者快速解决中文显示为方框的常见问题,提升数据可视化效果。

weixin_30855099的博客 170

【3】Python 数据结构

数据结构 一、 实验简介 1.1 实验内容 本节实验介绍Python的数据结构。 1.2 实验知识点 Python的数据结构 1.3 实验环境 python2.7Xfce终端 1.4 适合人群 本课程难度为初级,适合没有编程经验的初学者。 二、实验步骤 2.1 列表 2.1.1 列表对象方法 list.append(x)

24小时的程序员 675

QT+SOEM主站协议库实战指南—从编译到嵌入式应用

本文提供了一份QT与SOEM开源EtherCAT主站协议库的集成实战指南。详细介绍了在Windows和Linux平台下编译SOEM库的步骤,并讲解了如何将其无缝集成到QT项目中,构建具备实时监控与控制功能的工业上位机应用。内容涵盖从环境搭建、核心协议开发到嵌入式部署与优化的全流程,为开发高性价比、自主可控的工业控制解决方案提供完整路径。

u6v7w8x的博客 440

置顶必读(2) | 《YOLOv11实战:从入门到深度优化》目录导航篇(持续更新中)

🏆 本文收录于 《YOLOv11实战:从入门到深度优化》 专栏。 本专栏系统梳理并持续复现全网各类 YOLOv11 / YOLO系列改进方案与实战案例,目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。 内容坚持 持续更新 + 深度拆解 + 工程落地导向,不仅讲“怎么改”,更讲“为什么这样改、如何真正落地到项目中”。

**My Coding Family** 11万+

python 判断列表中是否存在子列表

>>> a=[1,2,3,4,[876,86,435]] >>> a [1, 2, 3, 4, [876, 86, 435]] >>> for i in a: ... if i>0: ... print(i) ... 1 2 3 4 Traceback (most recent call last): File "&lt...

weixin_42528089的博客 4123

C#实现OPC客户端与S7-1200 PLC通信:工控场景稳定通信的实战指南(附完整代码)

标准化优先:OPC UA是工业通信的标准,相比直接通信,更适合多设备集成的工控场景;稳定性第一:必须封装断线重连、异常处理、资源释放逻辑,满足7×24小时运行需求;效率优化:高频采集场景优先用批量读写,避免单个变量频繁请求;细节把控:节点ID、变量类型、端口配置等细节是新手最容易踩坑的地方,建议先用UA Expert验证。这套代码和方案已在多个工业项目中落地,从单台S7-1200到多台S7-1200/1500集群,都能稳定运行。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1036

萌新试玩python的踩坑史

python学习教程请看python快速教程 快速脱坑请看本博客 1 逻辑变量 True False 开头大写(和java不一样) 2 if用法错误纠正(正确使用缩进)>>> i=1; >>> x=2; >>> if i>0: ... x=x+2; File "<stdin>", line 2 x=x+2; ^ IndentationError: exp

梦之马 623

【EB_Tresos专题】-06-配置一个UDS诊断DID

<--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--> <--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--> 结尾 ...

「汽车电子助手」的博客 4087

在 ABAP Push Channel 里玩转 Detached Client:用 Attach Handle 把 WebSocket 连接交接给业务逻辑

摘要:本文介绍了ABAP Push Channels (APC)中的Detached Client技术,该技术通过将WebSocket连接建立与后续处理分离,实现更高效的实时通信。核心流程包括创建连接、使用connect_and_detach交接连接、以及通过attach handle重新附着发送消息。文章还探讨了PCP协议和AMC技术在企业级推送场景中的应用,并通过示例代码展示了Detached Client的具体实现方式。这种设计解决了传统轮询的资源浪费问题,特别适用于生产线监控、客服系统等需要服务端主

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2321

【Python程序的异常处理】

因为我们是人,不是神,所以经常会犯错。另外,作为一个合格的程序员,在编程的时候一定要意识到一点,就是永远不要相信你的用户。如果在执行 try 子句的过程中发生了异常,那么 try 子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的 except 子句将被执行。使用 else 子句比把所有的语句都放在 try 子句里面要好,这样可以避免一些意想不到,而 except 又无法捕获的异常。如果一个异常没有与任何的 except 匹配,那么这个异常将会传递给上层的 try 中。

W_chuanqi的博客 2251

【原理图与PCB专题】使用Cadence如何在Layout时直接互换相同功能的PIN

Cadence允许我们在PCB中互换管脚,最后再反标给原理图。集成TVS管、排阻、DDR、FPGA有一些PIN是完全相同功能,可进行管脚互换的,建议使用这个功能。可降低硬件工程师与Layout工程师之间沟通成本,加快设计进度。

一点硬件 801

《Python数学编程》练习-day007:编写一个计算程序(2)

《Python数学编程》练习-day007:编写一个计算程序(2) 提示→《Python数学编程》练习系列往期笔记,如下 ????: Day1:《Python数学编程》练习-day001:斐波那契序列 Day2:《Python数学编程》练习-day002:分数操作 Day3:《Python数学编程》练习-day003:基本数学运算 Day4:《Python书序编程》练习-day004:复数 Day5:《Python书序编程》练习-day005:数值输入 Day6:《Python书序编程》练习-day006:

feizhang231的博客 696

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

day007-python函数之课后作业讲解

作业一: 需求:写函数,计算传入字符串中的【数字】、【字母】、【空格】以及【其他】的个数 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 #先定义一个函数 5 def func(args): 6 #定义一个计算数字的变量 7 digit_num = 0 8 # 定...

246

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

python笔记007-函数

昨日简要: 1.文件操作: 1.1获得句柄: f = open(‘one.txt’,mode=’’,encoding=’utf-8’) f = open(‘../’) à返回上一层 f = open(‘D:\test2\one.txt’,mode=’’,encoding=’utf-8’) 1.2 mode(模式) mode =...

baidang1937的博客 137

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

007.Oracle函数

从字符串(char)中指定位置(n)开始查找指定字符串(findchar)第m次出现的位置。语法:Replace(char,old_char,new_char)用新字符串(new_char)串替换指定字符串(old_char)语法:Instr(char,findchar[,n[,m]]语法:Round(n, [m])语法:Trunc(n, [m])

weixin_50296259的博客 1047

day 007

day 007 1.异常处理 try: lt = [1, 2, 3] lt['a']except Exception as e: # 万能异常 print(e) try: lt = [1, 2, 3] lt['a']except Exception as e: print(e) try: key = input('输入一个key获取字典中的值') dic = {'...

banshe6026的博客 210

Python学习day007

01recur_fac(n)递归函数 def recur_fac(n): if n == 3: #当n为3时结束递归 return 3 return n * recur_fac(n-1) #进行函数递归 print("4的阶乘:",recur_fac(4)) #4的阶乘 4*(4-1) 4的阶乘: 12 02斐波那契数列 01默认值 01默认值 ...

qq_54670701的博客 119

day007-列表和字典

1,列表推导式 ① 序列变换成列表 str1 = 'abc' list1 = [x for x in str1] print(list1) # ['a', 'b', 'c'] nums = [10, 245, 89, 56] list2 = [x*100 for x in nums] print(list2) # [1000, 24500, 8900, 5600] ② 筛选(提取出有效的或者删除无效) scores = [89, 8, 100, 98, 67, 34, 59, 45, 23,

lijianmingweibo的博客 214

day 007总结

元组的内置方法 什么是元组(了解) 只可取,不可更改的列表 作用 元组一创建就被写死了 定义方式 ()内用逗号隔开隔开多个元素(可以为任意数据类型) 如果元组只有一个元素,必须得加逗号 tup=(1,2,3) tup=(3,) 使用方法 1.索引取值 print(tup[0]) 2.索引切片 print(tup[0:3]) 3.for循环 for i in tup: print(...

aimang0159的博客 106

Day 007 Python的5种数据类型

每学一门语言都需要用,了解这门语言的数据类型。 Python有五个标准的数据类型: # Numbers(数字)# String(字符串)# List(列表)# Tuple(元组)# Dictionary(字典) 和JavaScript不大一样的是多了元祖和字典; 1、Number(数字类型) 包含以下类型:int (整型),long ,float(浮点型),complex(复数) 在 Python3.X 版本中 long 类型被移除,使用 int 替代。 Python ...

xinghuowuzhao的博客 292

DAY 007--生问题

007 问题: 简述:话说有一对可爱的兔子,出生后的第三个月开始,每一月都会生一对小兔子。    当小兔子长到第三个月后,也会每个月再生一对小小兔子. 问题:假设条件,兔子都不死的情况下,问每个月的兔子总数为多少? 流程分析: ...

agan199003的博客 113

笔记 day007

文件 路径 绝对路径: C:\Users\Master\Desktop\test 磁盘路径 URL 相对路径 相对于自身正在编辑的文件 文件名 + 扩展名 I/O 操作 Input Output File open() : open() 方法用于打开一个文件,并返回文件对象 filename 文件路径(相对或者绝对路径)。\ 打开方式: r 默认方式 以只读方...

Captain_DUDU的博客 271

Python 学习 DAY2

1. 列表 1.1 标志 1.2 基本操作(创建,append(), pop(), del(), 拷贝) 1.3 列表相关方法 2. 元组 2.1标志 2.2 基本操作(创建及不可变性) 3. String字符串 3.1 定义及基本操作(+, *,读取方式) 3.2 字符串相关方法 4. 字符串格式化问题 【解答】 1. 列表 列表也叫list。 list是pyt...

qq_35648770的博客 338

python字符串和常用数据结构_day007

python的字符串和常用数据结构

slb190623的博客 815
上一篇: python(day006——函数1)
下一篇: python(day008——控制流)
王总总
博客等级 码龄8年 2粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值