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

大学生常用python变量和简单的数据类型、可迭代对象、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机小条打印使用循环找乌龟可迭代对象&#x1f4d7;理解一&#x1f4d8;理解二2️⃣什么是迭代器✔️注意3️⃣迭代器对象4️⃣有关迭代的函数for循环的3用法&#x1f338;I …...

Java集合:Map的使用

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

【Datawhale图机器学习】第一章图机器学习导论

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

window 配置深度学习环境GPU

CUDA 11.6 CUDNN Anaconda pytorch 参考网址&#xff1a;https://zhuanlan.zhihu.com/p/460806048 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com) 电脑信息 RTX 2060 GPU0 1. CUDA 11.6 1.1 确认信息 C:\Users\thzn>nvidia-smi &#xff08;CUDA Versi…...

VS Code 用作嵌入式开发编辑器

使用 Keil MDK 进行嵌入式开发时&#xff0c;Keil 的编辑器相对于主流编辑器而言有些不方便&#xff0c;比如缺少暗色主题、缺少智能悬停感知&#xff08;鼠标停在一个宏上&#xff0c;能自动展开最终的宏结果&#xff09;、代码补全不好用等等&#xff0c;所以推荐使用 VS Cod…...

【Python】网络爬虫经验之谈

爬虫经验之谈对爬虫的认识网站分析技术选型JS逆向反爬机制结语近段时间&#xff0c;因为工作需要做一些爬虫的开发&#xff0c;分享一下走过的坑和实战的经验吧&#xff01;对爬虫的认识 F12查看的网络请求&#xff0c;找到相应的接口查看一下json数据来源和构造。我爬取的网站…...

数学建模美赛【LaTeX】公式、表格、图片

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

【大数据】YARN节点标签Node Label特性

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

C# SolidWorks二次开发 API-命令标签页的切换与按钮错乱问题

这是一个网友咨询的问题&#xff0c;说他想控制默认打开文件之后solidworks上方工具栏的当前激活标签页。 之前我们提到过,制作Solidworks的插件也会在上面增加一个标签页&#xff0c;用来放自己开发的命令&#xff0c;经常开发的人肯定会遇到有时候更新版本&#xff0c;或者标…...

ElasticSearch 7.6.1

疑问 ES为什么这么快&#xff1f; 全文检索 听过一个程序扫描文本的每一个单词&#xff0c;针对单词建立索引&#xff0c;并保存该单词在文本中的位置&#xff0c;以及出现的次数。在检索查询时候&#xff0c;通过建立好的索引进行查询&#xff0c;将索引中单词对应的文本位…...

Linux系列 操作系统安装及服务控制(笔记)

作者简介&#xff1a;一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.操作系统 1.Linux系统三大类 &#xff08;1&#xff09;ubu…...

Linux基础 - NTP时间同步

‍‍&#x1f3e1;博客主页&#xff1a; Passerby_Wang的博客_CSDN博客-系统运维,云计算,Linux基础领域博主 &#x1f310;所属专栏&#xff1a;『Linux基础』 &#x1f30c;上期文章&#xff1a; Linux基础 - DNS服务进阶 &#x1f4f0;如觉得博主文章写的不错或对你有所帮助…...

golang 入门教程:迷你 Twitter 后端

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

CPP2022-30-期末模拟测试03

6-1 引用作函数形参交换两个整数 分数 5 全屏浏览题目 切换布局 作者 李廷元 单位 中国民用航空飞行学院 设计一个void类型的函数Swap&#xff0c;该函数有两个引用类型的参数&#xff0c;函数功能为实现两个整数交换的操作。 裁判测试程序样例&#xff1a; #include <…...

华为OD机试真题Python实现【最多等和不相交连续子序列】真题+解题思路+代码(20222023)

🔥系列专栏 华为OD机试(Python)真题目录汇总华为OD机试(JAVA)真题目录汇总华为OD机试(C++)真题目录汇总华为OD机试(JavaScript)真题目录汇总文章目录 🔥系列专栏题目输入输出示例一输入输出说明示例二输入输出说明...

二叉搜索树

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

数据结构(三):集合、字典、哈希表

数据结构&#xff08;三&#xff09;一、集合&#xff08;Set&#xff09;1.封装一个集合类2.集合常见的操作&#xff08;1&#xff09;并集&#xff08;2&#xff09;交集&#xff08;3&#xff09;差集&#xff08;4&#xff09;子集二、字典&#xff08;Map&#xff09;三、…...

Linux内核驱动开发(一)

Linux内核初探 linux操作系统历史 开发模式 git 分布式管理git clone 获取git push 提交git pull 更新 邮件组 mailing list patch 内核代码组成 Makfile arch 体系系统架构相关 block 块设备 crypto 加密算法 drivers 驱动&#xff08;85%&#xff09; atm 通信bluet…...

TCP/IP协议二十问

TCP/IP协议二十问 1. 什么是TCP网络分层&#xff1f; TCP网络分层一般分为五层&#xff1a; 应用层&#xff08;HTTP&#xff09;&#xff1a;组装数据包传输层&#xff08;TCP&#xff09;&#xff1a;增加TCP头部&#xff0c;包含端口号等信息网络互联层&#xff08;IP&am…...

常用Array数组操作方法

定义一个测试数组constplayers[{name:科比,num:24},{name:詹姆斯,num:23},{name:保罗,num:3},{name:威少,num:0},{name:杜兰特,num:35}]复制代码1、forEach参数代表含义item&#xff1a;遍历项index&#xff1a;遍历项的索引arr&#xff1a;数组本身Array.prototype.sx_forEach…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...

6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础

第三周 Day 3 &#x1f3af; 今日目标 理解类&#xff08;class&#xff09;和对象&#xff08;object&#xff09;的关系学会定义类的属性、方法和构造函数&#xff08;init&#xff09;掌握对象的创建与使用初识封装、继承和多态的基本概念&#xff08;预告&#xff09; &a…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁

赛门铁克威胁猎手团队最新报告披露&#xff0c;数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据&#xff0c;严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能&#xff0c;但SEMR…...

Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解

文章目录 1. 题目描述1.1 链表节点定义 2. 理解题目2.1 问题可视化2.2 核心挑战 3. 解法一&#xff1a;HashSet 标记访问法3.1 算法思路3.2 Java代码实现3.3 详细执行过程演示3.4 执行结果示例3.5 复杂度分析3.6 优缺点分析 4. 解法二&#xff1a;Floyd 快慢指针法&#xff08;…...