大学生常用python变量和简单的数据类型、可迭代对象、for循环的3用法
文章目录
- 变量和简单的数据类型
- 下划线开头的对象
- 删除内存中的对象
- 列表与元组
- debug
- 三酷猫钓鱼记录
- 实际POS机小条打印
- 使用循环找乌龟
- 可迭代对象
- 📗理解一
- 📘理解二
- 2️⃣什么是迭代器
- ✔️注意
- 3️⃣迭代器对象
- 4️⃣有关迭代的函数
- for循环的3用法
🌸I could be bounded in a nutshell and count myself a king of infinite space.
特别鸣谢:木芯工作室 、Ivan from Russia
变量和简单的数据类型
下划线开头的对象
单下划线_
变量
在Python中,变量可以包含数字、字母、下划线等,所以单独一个下划线_也是一个变量
,表示一个临时对象
,一般后续不会用到,比如:
>>> i = 0
>>> for _ in range(10):
... i += 1
...
>>> i
程序中运行的最近一个结果
单下划线_也可以表示程序中运行的最近一个结果,如:
>>> 'https://machinelearning.blog.csdn.net/'
'https://machinelearning.blog.csdn.net/'
>>> _
'https://machinelearning.blog.csdn.net/'
>>> 100
100
>>> _
10
国际化和本地化字符串之间翻译查找的函数
单下划线_作为函数名
时,一般是代表了国际化和本地化字符串之间翻译查找的函数。
单下划线开头变量_var
或函数_fun()
单下划线开头_var的变量或函数_fun表示该变量或函数为内部使用的变量
,不建议在外部使用,但单下划线开头仅仅是一个提示,没有权限控制,实际上可以在外部访问。同时,如果用from <module> import *
和from <package> import *
时,这些属性、方法、类将不被导入
。
单下划线结尾var_
为了防止跟系统关键字重名
了,比如函数里需要有个参数class,但是Python中class为关键字,所以需要将 class设置为class_
。
双下划线开头变量__var
或函数__fun()
代表着类中的私有变量名或函数
,主要用于避免子类覆盖父类的方法
,如果需要访问,需使用_classname__fun()
。
前后双下划线变量__var__
或函数__fun__()
系统定义
的变量名称或函数,如Python的魔法函数
: __ init__(),__ str__(),__ new__(),__ unicode__(), __ call__(),__ len__(),__repr__(),__ setattr__(),__ getattr__(),__ getattribute__(),__ delattr__(),__ setitem__(),__ getitem__(),__ delitem__(),__ iter__(),__ del__(),__dir__(),__dict__(),__exit__(),__enter(),__all__()。
我们定义变量名称或函数是应该尽量避免前后加双下划线。
版权声明:本文为CSDN博主「von Neumann」的原创文章,遵循CC 4.0
BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hy592070616/article/details/125114737
删除内存中的对象
a='0'
del(a)
print(a) //报错
列表与元组
i = 0
while i<5:print(12)i+=1
debug
三酷猫钓鱼记录
a,b,c=6,5,8
print(''*3+'表2.1'+' 三酷猫的钓鱼记录')
print("| |"+"日期"+" 鱼名"+" 数量")
print("|1 |"+"2017.11"+" 鲫鱼"+" %d"%(a))
print("|2 |"+"2017.11"+" 鲫鱼"+" %d"%(b))
print("|3 |"+"2017.11"+" 鲫鱼"+" %d"%(c))
print( "总共 %d+%d+%d=19 "%(a,b,c))
实际POS机小条打印
血的教训:%要紧随其后
num1,num2,num3=6,5,8
price1,price2,price3=8.1,8.2,8
print(''*3+'表2.1'+' 三酷猫的钓鱼记录')
print("| |"+"日期"+" 鱼名"+" 数量 单价")
print("|1 |"+"2017.11"+" 鲫鱼"+" "+str(num1)+" "+str(price1))
print("|2 |"+"2017.11"+" 鲤鱼"+" "+str(num2)+" "+str(price2))
print("|3 |"+"2017.11"+" 草鱼"+" "+str(num3)+" "+str(price3))
print( "总共数量%d+%d+%d=19 "%(num1,num2,num3)+"总共"+str(123))
使用循环找乌龟
三酷猫钓鱼记录查找
fish_record=‘鲫鱼5条、鲤鱼8条、鲢鱼7条、草鱼2条、黑鱼6条、乌龟1只’
fish_record='鲫鱼5条、鲤鱼8条、鲢鱼7条、草鱼2条、黑鱼6条、乌龟1只'
i=0
total=len(fish_record)
print(total)
while i<total:print(str(i) + "--------" + str(total))if fish_record[i:i+2]=="乌龟":print("乌龟有"+fish_record[i+2:i+3]+"只")i+=5
可迭代对象
数字列表,字符串,列表,元组,字典…
📗理解一
Iterable
对象,就是可迭代对象,即可以用for...in...
进行遍历的对象,就叫可迭代对象。
比如列表,元组,字符串,字典等都属于可迭代对象。
📘理解二
一个对象如果实现了__iter__
方法,那么我们称这个对象是可迭代对象。
2️⃣什么是迭代器
📗理解
一个实现了__iter__
方法和__next__
方法,并且可以通过__next__
方法不断返回下一个值的对象称为Itertor
,即迭代器。
也就是说,迭代器均可以使用 for...in... 和next
逐一遍历。
迭代器的两个最基本的方法:iter()
和 next()
.
✔️注意
需要注意的是,列表,元组,字典,集合,字符串
均实现了__iter__
方法,但并未实现__next__
方法,所以这些对象并不能称为迭代器。
3️⃣迭代器对象
✨iter()
列表,元组,字符串等对象都可以使用iter()方法来创建迭代器对象。
✨next()
创建迭代器对象后就可以使用next()
方法来访问元素
访问迭代器对象都是从第一个元素开始,直到访问结束
迭代器只能往前不会后退
🔋实例
>>> list_1 = [1,2,3]
>>> it_list = iter(list_1)
>>> print(next(it_list))
>>> 1
>>> print(next(it_list))
>>> 2
>>> print(next(it_list))
>>> 3
>>> print(next(it_list))
>>> Traceback (most recent call last):
...
StopIteration
fish_record='鲫鱼5条、鲤鱼8条、鲢鱼7条、草鱼2条、黑鱼6条、乌龟1只'
fish_record = iter(fish_record)
print(next(fish_record))
显然,如果访问到迭代器对象的最后一个元素时继续访问,就会触发StopIteration异常
4️⃣有关迭代的函数
🌱---- enumerate()
语法:
enumerate(iterable, start=0)
用法:
返回一个索引和enumerate
对象
参数:
iterable
----可迭代对象或迭代器
start
----索引值,默认为0
实例:
例1
>>>teams=['勇士', '热火', '骑士']
>>>enumerate(teams)enumerate object at 0x000002E9569016C0>
>>>for t in enumerate(teams):print(t, end = ' ')
...(0, '勇士') (1, '热火') (2, '骑士')
例2
>>>teams=['勇士', '热火', '骑士']
>>>for i, t in enumerate(teams):print(i, t, end=" ")
... 0 勇士 1 热火 2 骑士
例子3
>>>teams=['勇士', '热火', '骑士']
>>>t1 = enumerate(teams)
>>>t1.__next__()(0, '勇士')
>>>t1.__next__()(1, '热火')
>>>t1.__next__()(2, '骑士')
>>>t1.__next__()Traceback (most recent call last):...t1.__next__()StopIteration
例4
>>>teams=['勇士', '热火', '骑士']
>>>t1 = enumerate(teams,2)
>>>t1.__next__()(2, '勇士')
>>>t1.__next__()(3, '热火')
>>>t1.__next__()(4, '骑士')
>>>t1.__next__()Traceback (most recent call last):...t1.__next__()StopIteration
🌱---- map()
用法:
该函数用于将一个函数依次映射到可迭代对象的每个元素上,再返回一个map对象
实际上,map对象既是可迭代对象,也是一个迭代器对象
语法:
map(function, iterable, ...)
1
参数:
function
---- 函数
iterable
---- 可迭代对象,可以有多个iterable
返回:
该函数返回一个将 function 应用于 iterable 中每一项并输出其结果的迭代器。
当有多个可迭代对象时,最短的可迭代对象耗尽则整个迭代就将结束
实例:
由于该函数返回的是迭代器,所有我们可以用list()
函数将结果转换
为列表
。
🌱---- zip()
用法:
将多个迭代器对象
(或可迭代对象)中的元素压缩到一起,并返回一个zip对象
实际上,zip对象既是可迭代对象,也是一个迭代器对象
语法:
zip(iterable, ...)
1
参数:
iterable
----可迭代对象,可以有多个。
返回:
该函数在多个iterable
上并行迭代,从每个可迭代对象上返回一个数据项组成元组。
也就是说, zip()
返回元组的迭代器
,其中第 i 个元组包含的是每个参数迭代器的第 i 个元素。
如图:
🌱---- filter()
用法:
传入带有一个参数的函数function,并返回一个filter对象
filter对象中的元素是由参数中的iterable对象使得函数function返回值为True的那些元素组成
通俗讲就是满足function函数条件的那些元素组成了filter对象
实际上,filter对象既是可迭代对象,也是一个迭代器对象
语法:
filter(function, iterable)
1
参数:
function
----判断函数,用于过滤掉对象里不符合条件的元素
iterable
----可迭代对象,如列表,元组等。
返回:
返回一个新的迭代器,其中的元素都符合判断函数的条件
实例:
我们可以利用list()函数
来转换filter()函
数的返回值
版权声明:本文为CSDN博主「翼同学」的原创文章,遵循CC 4.0
BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_62999278/article/details/123884858
for循环的3用法
for var in range(9):print("wowudi")
fish_record='鲫鱼5条、鲤鱼8条、鲢鱼7条、草鱼2条、黑鱼6条、乌龟1只'i=0
for i in range(len(fish_record)):if fish_record[i+2:i+3] =="5":print("鲫鱼"+"5")i+=5
相关文章:

大学生常用python变量和简单的数据类型、可迭代对象、for循环的3用法
文章目录变量和简单的数据类型下划线开头的对象删除内存中的对象列表与元组debug三酷猫钓鱼记录实际POS机小条打印使用循环找乌龟可迭代对象📗理解一📘理解二2️⃣什么是迭代器✔️注意3️⃣迭代器对象4️⃣有关迭代的函数for循环的3用法🌸I …...

Java集合:Map的使用
1.Map框架l----Map:双列数据,存储key-value对的数据 ---类似于高中的函数: y f(x)|----HashMap:作为Map的主要实现类, 线程不安全的,效率高;可以存储null的key和value|----LinkedHashMap:保证在遍历map元素时,可以按照…...

【Datawhale图机器学习】第一章图机器学习导论
图机器学习导论 学习路径与必读论文清单 斯坦福CS224W(子豪兄中文精讲)知识图谱实战DeepwalkNode2vecPageRankGNNGCNGragh-SAGEGINGATTrans-ETrans-R 图无处不在 图是描述关联数据的通用语言 举例 计算机网络新冠肺炎流行病学调查传播链食物链地铁图…...

window 配置深度学习环境GPU
CUDA 11.6 CUDNN Anaconda pytorch 参考网址:https://zhuanlan.zhihu.com/p/460806048 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com) 电脑信息 RTX 2060 GPU0 1. CUDA 11.6 1.1 确认信息 C:\Users\thzn>nvidia-smi (CUDA Versi…...

VS Code 用作嵌入式开发编辑器
使用 Keil MDK 进行嵌入式开发时,Keil 的编辑器相对于主流编辑器而言有些不方便,比如缺少暗色主题、缺少智能悬停感知(鼠标停在一个宏上,能自动展开最终的宏结果)、代码补全不好用等等,所以推荐使用 VS Cod…...
【Python】网络爬虫经验之谈
爬虫经验之谈对爬虫的认识网站分析技术选型JS逆向反爬机制结语近段时间,因为工作需要做一些爬虫的开发,分享一下走过的坑和实战的经验吧!对爬虫的认识 F12查看的网络请求,找到相应的接口查看一下json数据来源和构造。我爬取的网站…...

数学建模美赛【LaTeX】公式、表格、图片
数学建模美赛【LaTeX】公式、表格、图片 1 宏包 \package{ } 就是在调用宏包,对计算机实在外行的同学姑且可以理解为工具箱。 每一个宏包里都定义了一些专门的命令,通过这些命令可以实现对于一类对象(如数学公式等)的统一排版&a…...

【大数据】YARN节点标签Node Label特性
简介 YARN 的 Node-label 特性能够将不同的机器类型进行分组调度,也可以根据不同的资源要求进行分区调度。运维人员可以根据节点的特性将其分为不同的分区来满足业务多维度的使用需求。YARN的Node-label功能将很好的试用于异构集群中,可以更好地管理和调…...

C# SolidWorks二次开发 API-命令标签页的切换与按钮错乱问题
这是一个网友咨询的问题,说他想控制默认打开文件之后solidworks上方工具栏的当前激活标签页。 之前我们提到过,制作Solidworks的插件也会在上面增加一个标签页,用来放自己开发的命令,经常开发的人肯定会遇到有时候更新版本,或者标…...
ElasticSearch 7.6.1
疑问 ES为什么这么快? 全文检索 听过一个程序扫描文本的每一个单词,针对单词建立索引,并保存该单词在文本中的位置,以及出现的次数。在检索查询时候,通过建立好的索引进行查询,将索引中单词对应的文本位…...

Linux系列 操作系统安装及服务控制(笔记)
作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页 目录 前言 一.操作系统 1.Linux系统三大类 (1)ubu…...

Linux基础 - NTP时间同步
🏡博客主页: Passerby_Wang的博客_CSDN博客-系统运维,云计算,Linux基础领域博主 🌐所属专栏:『Linux基础』 🌌上期文章: Linux基础 - DNS服务进阶 📰如觉得博主文章写的不错或对你有所帮助…...

golang 入门教程:迷你 Twitter 后端
请记住,这个项目主要是为了稍微熟悉下Golang,您可以复制架构,但该项目缺少适当的 ORM,没有适当的身份验证或授权,我完全无视中间件,也没有测试。 我将在其自己的部分中讨论所有这些问题,但重要的…...

CPP2022-30-期末模拟测试03
6-1 引用作函数形参交换两个整数 分数 5 全屏浏览题目 切换布局 作者 李廷元 单位 中国民用航空飞行学院 设计一个void类型的函数Swap,该函数有两个引用类型的参数,函数功能为实现两个整数交换的操作。 裁判测试程序样例: #include <…...
华为OD机试真题Python实现【最多等和不相交连续子序列】真题+解题思路+代码(20222023)
🔥系列专栏 华为OD机试(Python)真题目录汇总华为OD机试(JAVA)真题目录汇总华为OD机试(C++)真题目录汇总华为OD机试(JavaScript)真题目录汇总文章目录 🔥系列专栏题目输入输出示例一输入输出说明示例二输入输出说明...

二叉搜索树
1.二叉搜索树 1.1.二叉搜索树概念 二叉搜索树又称二叉排序树,它或者是一颗空树,或者是具有一下性质的二叉树。 若它的左子树不为空,则左子树上的所有节点的值都小于根节点的值。若它的右子树不为空,则右子树上的所有节点的值都…...

数据结构(三):集合、字典、哈希表
数据结构(三)一、集合(Set)1.封装一个集合类2.集合常见的操作(1)并集(2)交集(3)差集(4)子集二、字典(Map)三、…...

Linux内核驱动开发(一)
Linux内核初探 linux操作系统历史 开发模式 git 分布式管理git clone 获取git push 提交git pull 更新 邮件组 mailing list patch 内核代码组成 Makfile arch 体系系统架构相关 block 块设备 crypto 加密算法 drivers 驱动(85%) atm 通信bluet…...
TCP/IP协议二十问
TCP/IP协议二十问 1. 什么是TCP网络分层? TCP网络分层一般分为五层: 应用层(HTTP):组装数据包传输层(TCP):增加TCP头部,包含端口号等信息网络互联层(IP&am…...
常用Array数组操作方法
定义一个测试数组constplayers[{name:科比,num:24},{name:詹姆斯,num:23},{name:保罗,num:3},{name:威少,num:0},{name:杜兰特,num:35}]复制代码1、forEach参数代表含义item:遍历项index:遍历项的索引arr:数组本身Array.prototype.sx_forEach…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...

莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...

渗透实战PortSwigger Labs指南:自定义标签XSS和SVG XSS利用
阻止除自定义标签之外的所有标签 先输入一些标签测试,说是全部标签都被禁了 除了自定义的 自定义<my-tag onmouseoveralert(xss)> <my-tag idx onfocusalert(document.cookie) tabindex1> onfocus 当元素获得焦点时(如通过点击或键盘导航&…...
第22节 Node.js JXcore 打包
Node.js是一个开放源代码、跨平台的、用于服务器端和网络应用的运行环境。 JXcore是一个支持多线程的 Node.js 发行版本,基本不需要对你现有的代码做任何改动就可以直接线程安全地以多线程运行。 本文主要介绍JXcore的打包功能。 JXcore 安装 下载JXcore安装包&a…...