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

从零开始学Python(2)——流程控制语句和五种容器

从零开始学Python(2)——流程控制语句和五种容器

文章目录

  • 从零开始学Python(2)——流程控制语句和五种容器
    • 前言
    • 流程控制语句
      • if语句
      • for循环
      • while循环
      • break语句和continue语句
      • 关于python的格式
    • 五种数据容器
      • 列表
        • 一些方法
        • 数值列表
        • 列表解析
      • 元组
      • 集合
      • 字典
    • 结语

前言

学习python的第二天,今天赶一赶进度。

贴一下我觉得很好的一个专栏Python手把手教程_安然无虞的博客-CSDN博客。这个专栏总结了大部分常见的python知识点,比我用的书上的全面。

今天还是照着书学,参考专栏和ds,只记录一些关键点。


流程控制语句

if语句

if 条件:操作if 条件:操作
else:操作if:
elif:
elif:
else:嵌套

使用and表示条件的并(对应c++ &&),使用or表示条件的交(||)

使用in和not in表示特定值是否在列表中

同样有==,!=,>=,<=等运算符

for循环

python支持的for循环格式:

for 临时变量名 in 列表名:循环体语句循环体语句
结束循环后的语句

这种循环类似现代c++支持的列表循环for xx:xx

所有使用了一层水平缩进的代码块都被视为循环体!这点非常的有意思,即水平上的格式会影响解释器理解代码,因而对水平缩进要特别注意

标准的一层缩进是4个空格

while循环

和c++类似

while 条件:循环体

break语句和continue语句

和c++基本一致

关于python的格式

行长:一般设置为79字符

空行:应该有利于阅读

缩进:需要特别注意

按照PEP 8标准写python代码


五种数据容器

Python中的五种数据容器有:

  1. list 列表
  2. tuple 元组
  3. str 字符串
  4. set 集合
  5. dict 字典

字符串第一篇博客已经学过,这里我们学习一下另外四种数据容器

列表

有序可变

我的初步理解:列表就是没有特定变量类型的数组

列表内的元素种类可以不相同!!!

支持随机访问,显然逻辑结构是线性的,物理结构是动态数组(类似c++ vector)

索引0是第一个元素,索引-1对应列表最后一个元素

.append(新元素)在列表尾添加元素;.insert(索引,新元素)在指定位置插入元素

del 列表名[索引]删除指定位置的元素,和对象.方法语法不同

.pop()方法弹出最后一个元素,可以保存到某个变量中

可以.pop(索引)弹出指定元素

.remove(元素名)删除指定名称的元素

插入和删除等操作涉及到元素的移动,这些操作都是线性时间复杂度On的

一些方法

永久排序.sort(),默认从小到大,使用.sort(reverse=True)从大到小排序

临时排序sorted(列表名),注意不是方法

.reverse()逆序

len()获取长度

切片:创立一个列表的浅拷贝

语法:新列表名=列表名[起始索引:终止索引:步长],步长±代表方向

数值列表

range()函数:range(起始索引,终止索引,步长) 注意终止索引不算在range内

list()函数:生成一个列表,配合range函数创建一个数值列表

对于数值列表,有一些函数:min,max,sum

列表解析

快速创建列表的方法

语法:[expression for item in iterable if condition]

更多方法可查看博客

注意数组越界问题

元组

有序不可变

元组和列表类似,最大的区别就是元组本身是不可变的,即创建元组时有几个元素,元组就有几个元素

元组用圆括号标识

元组元素同样可以不同

元组内的元素可能可以修改,如某个可变列表是元组的元素,那么这个可变列表是可以修改的(元组创建了对对象的常引用,但是对象可能是可变的)

想要修改元组,就要对元组重新赋值,我理解为创建新的元组

注意, 想让只有一个元素成为元组一定要在后面加上逗号, 否则不认为是元组

集合

无序不可重复

注意: Python的集合(set)可以容纳任何可哈希(hashable)的数据类型的元素(key),例如数字、字符串、元组等。不可哈希(unhashable)的数据类型,例如列表、字典、集合等,则不能作为集合的元素(key).。这是因为集合的元素(key)需要能够进行哈希运算,以便于进行快速的查找和去重。

字典

key-value关系

:分开key和value, ,分开不同的键值对,花括号括起整个字典,方括号访问或增添修改单独的键值对

方法

删除键值对del

遍历字典,遍历所有的键.keys(),遍历所有的值.values(),

嵌套:列表嵌套字典,字典嵌套列表,字典嵌套字典等


结语

快速通读了书的前7章,除了用户输入没看,剩下的都略读了一遍,算是对python有了一个粗浅的认识。

这部分没怎么实际写代码,python代码格式和c++不同,还需要多写代码形成肌肉记忆。最近也在尝试用python写力扣算法题。

相关文章:

  • 《射频识别(RFID)原理与应用》期末复习 RFID第四章 数据校验和防碰撞算法(知识点总结+习题巩固)
  • js判断手机操作系统(ios、安卓、华为)
  • FastDFS分布式存储
  • web3 资讯网址
  • Web 架构之 Kubernetes 弹性伸缩策略设计
  • 如何将 iPhone 中的短信导出为 PDF
  • C/C++ 面试复习笔记(6)
  • 一[3]、ubuntu18.04环境 利用 yolov8 训练开源列车数据集,并实现列车轨道检测
  • Java基于SpringBoot的牙科诊所管理系统,附源码+文档说明
  • Springboot实现Java程序和线程池的优雅关闭
  • 计算机视觉之三维重建(深入浅出SfM与SLAM核心算法)—— 1. 摄像机几何
  • Oracle DG库手动注册归档日志的两种方法
  • 【报错解决】RTX4090 nvrtc: error: invalid value for --gpu-architecture (-arch)
  • Android 手机操作系统的14个常见问题以及解决办法
  • PostgreSQL认证怎么选?PGCP中级认证、PGCM高级认证
  • Git 常用总结
  • 【Net】TCP/IP 协议
  • 《性能之巅》第十章 网络
  • 机器学习与深度学习20-数学优化
  • 如何彻底解决缓存击穿、缓存穿透、缓存雪崩
  • 一个公司做两个网站可以吗/广告投放网站平台
  • 越秀区做网站/宁波seo外包平台
  • 无货源电商批发平台/北京seo优化推广
  • 手机网站设计制作公司/站长工具如何使用
  • 做网站ps建立多大的画布/推广软文模板
  • 局网站信息内容建设 自查报告/百度广告