Python 基础语法
文章目录
- 条件判断
- 循环
- 数据类型
- 变量
- 字符编码
- 字符串
- 格式化
- list
- tuple
- dict
- set
- 不可变对象
- ”#“ 开头的是注释
- 每一行是一个语句,当语句以冒号 “:” 结尾时,缩进的语句被视为代码块
好处:强迫代码格式化,强迫少用缩进
坏处:“复制-粘贴”失效,无法自动格式化
条件判断
if x:print(True)
只要 x 是非零,非空白字符串,非空 list,非 None 等空白或空值,就判断为 True,否则为 False
循环
- for x in …:把每个元素代入变量 x
- range(x):可以生成一个整数序列,从 0 开始,遇 x 停止
- list(range(x)):可以得到[0,1,2,3,…x-1]
- while n>0:满足 n>0 就不断循环
- break:提前结束当前整个循环
- continue:跳出当前这次循环
数据类型
| 类型 | 精度 | 大小 | 说明 |
|---|---|---|---|
| 整型 | 精确 | 无大小限制 | 十六进制,以 0x 为前缀,由 0-9,a-f 表示,允许数字中间以 ‘_’ 分隔,入 10_000_000(同 10000000),0xa1b2_c3d4(同 0xa1b2c3d4) |
| 浮点型 | 四舍五入 | 无大小限制 | inf(无限大),科学计数法,把 10 用 e 替代,1.23e9 |
| 字符串 | - | - | r’’ 表示’‘内部的字符串默认不转义,’‘’…‘’’ 的格式表示多行内容 |
| 布尔 | - | - | 可以用 and, or, not 运算 |
| 空值 | - | - | None |
整数除法
| 运算符 | 说明 |
|---|---|
| / | 结果是精确的商,永远是浮点数 |
| // | 结果是商的整数部分,永远是整数 |
| % | 结果是余数部分,永远是整数 |
变量
必须是大小写英文,数字和 ‘_’ 组合,并且不以数字开头;
可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量
变量在计算机内存中的表示,如下
a = 'ABC'
Python 解释器干了两件事情:
- 在内存中创建了一个’ABC’的字符串;
- 在内存中创建了一个名为 a 的变量,并把它指向’ABC’。
变量本身类型不变的计算机编程语言为动态语言
常量
常量就是不能变的变量,Python 通常用全部大写的变量名表示常量,Python 不强制常量无法修改
字符编码
- 8 比特(bit)为一个字节(byte),最大表示 28-1 =255
- ASCII 码有 127 个字符
- Unicode 把所有语言都统一到一套编码里
- UTF-8 把 Unicode 字符根据不同的数字大小编码成 1-6 个字节(常用英文字符编码成 1 个字节,汉字通常是 3 个字节,很生僻字才编码成 4-6 字节)
- ASCII 可以看作 UTF-8 的一部分
- 计算机内存统一使用 Unicode,当需要保存到磁盘或传输时,转为通用 UTF-8s
字符串
- ord() 可以获取字符的整数表示
- chr() 把编码转成对应的字符
- len() 参数是 str 时表示字符数,参数是 list 时表示元素个数,参数是 bytes 时表示字节数
编码与解码
encode() 将 str 编码成指定的 bytes
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
decode() 将指定 bytes 解码为 str
# errors='ignore' 忽略错误的字节
>>> b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore')
'中'
格式化
占位符
| 占位符 | 替换内容 | 说明 |
|---|---|---|
| %d | 整数 | 用空位或 0 补长,'%2d-%02d' % (3, 1) => 3-01 |
| %f | 浮点数 | 保留小数位数,'%.2f' % 3.1415926 => 3.14 |
| %s | 字符串 | |
| %x | 十六进制整数 |
format() 用传入的参数依次替换字符串内的占位符 {0}, {1}...
>>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
'Hello, 小明, 成绩提升了 17.1%'
f-string 字符串包含 {xxx},就会以 xxx 变量来替换
>>> r = 2.5
>>> s = 3.14 * r ** 2
>>> print(f'The area of a circle with radius {r} is {s:.2f}')
The area of a circle with radius 2.5 is 19.62
list
一种有序的集合,可以随时添加或删除其中的元素,元素的类型可以不同
| 方法 | 说明 |
|---|---|
| [] | 索引,listA[0]:获取第一个元素;listA[-1]:获取最后一个元素;listA[1] = ‘C’:把第二个元素替换为 ‘C’ |
| append | 追加,listA.append(‘A’):在末尾最佳一个 ‘A’ |
| insert | listA.insert(1, ‘B’):在第一个元素后面插入一个 ‘B’ |
| pop | listA.pop():删除末尾;pop(1):删除第二个元素 |
赋值语句不能与这些方法同用
>>> listB = listA.append('A')
>>> print(listB)
None
tuple
另一种有序集合,一旦初始化不能修改(指向不变:变量所指向的实例不能修改)
- 定义空元组,t = ()
- 定义单元素元组,t = (1,)
- 要保证元组内容不可变,必须保证元组的每个元素本身不可变
dict
python 内置字典,在其他语言也叫 map,使用键-值存储,具有极快的查找速度,不会随着大小的变化而变慢,相比 list 占用大量内存,以空间换时间
| 方法 | 说明 |
|---|---|
| in | 'T' in d 判断’T’是否存在于 d.keys |
| get | d.get('T') 获取 key 为 ‘T’ 的值; d.get('T', -1) 获取 key 为 ‘T’ 的值,如不存在取默认值 -1 |
| pop | d.pop('B') 删除 key 为’B’ 的键值对 |
dict 的 key 必须是不可变对象,如:字符串,整数等,否则抛异常(TypeError: unhashable type)
set
与 dict 类似,也是一组 key 的集合,但不存储 value,key 不能重复,数学意义上的无序和无重复元素的集合
创建
>>> s = set([1,2,2,3,3])
>>> s
{1, 2, 3}
添加
>>> s.add(4)
>>> s
{1, 2, 3, 4}
删除
>>> s.remove(4)
>>> s
{1, 2, 3}
并交
>>> ss = set([2,3,4])
>>> s&ss
{2, 3}
>>> s|ss
{1, 2, 3, 4}
不可变对象
>>> a = 'abc'
>>> b = a.replace('a', 'A')
>>> b
'Abc'
>>> a
'abc'
tuple 也是不可变对象
- (1, 2, 3) 可以作为 dict 和 set 的 key
- (1, 2, [1, 2]) 不可作为 dcit 和 set 的 key,TypeError: unhashable type
专栏:《Python 基础》
PS:感谢每一位志同道合者的阅读,欢迎关注、评论、赞!
相关文章:
Python 基础语法
文章目录条件判断循环数据类型变量字符编码字符串格式化listtupledictset不可变对象”#“ 开头的是注释每一行是一个语句,当语句以冒号 “:” 结尾时,缩进的语句被视为代码块 好处:强迫代码格式化,强迫少用缩进 坏处:“…...
Kubernetes:通过 kubectl 插件 ketall 查看所有APi对象资源
写在前面 分享一个查看集群所有资源的小工具博文内容涉及: 下载安装常用命令 Demo 理解不足小伙伴帮忙指正 出其东门,有女如云。虽则如云,匪我思存。缟衣綦巾,聊乐我员。——《郑风出其东门》 分享一个查看集群所有资源的小工具&a…...
Zookeeper3.5.7版本——选举机制(非第一次启动)
目录一、ZooKeeper集群中哪些情况会进入Leader选举二、当一台机器进入Leader选举流程时,当前集群的两种状态2.1、集群中本来就已经存在一个Leader2.2、集群中确实不存在Leader三、Zookeeper中的一些概念了解3.1、SID3.2、ZXID3.3、Epoch一、ZooKeeper集群中哪些情况…...
Python | Leetcode刷题日寄Part05
欢迎交流学习~~ LeetCode & Python 系列: 🏆 Python | Leetcode刷题日寄Part01 🔎 Python | Leetcode刷题日寄Part02 💝 Python | Leetcode刷题日寄Part03 ✈️ Python | Leetcode刷题日寄Part04 Python|Leetcode刷题日寄Par…...
SpringCloud学习笔记(一)
单体应用架构 在诞⽣之初,拉勾的⽤户量、数据量规模都⽐较⼩,项目所有的功能模块都放在一个工程中编码、编译、打包并且部署在一个Tomcat容器中的架构模式就是单体应用架构。 优点: 高效开发:项⽬前期开发节奏快,团…...
【C语言指针练习题】你真的学会指针了吗?
✨✨✨✨如果文章对你有帮助记得点赞收藏关注哦!!✨✨✨✨ 文章目录✨✨✨✨如果文章对你有帮助记得点赞收藏关注哦!!✨✨✨✨一维数组练习题:字符数组练习题:字符指针练习题:二维数组练习题&am…...
java实现UDP及TCP通信
简介UDP(User Datagram Protocol)用户数据报协议,TCP(Transmission Control Protocol) 传输控制协议,是传输层的两个重要协议。UDP是一种无连接、不可靠传输的协议。其将数据源IP、目的地IP和端口封装成数据包,不需要建立连接,每个…...
深度学习-第T1周——实现mnist手写数字识别
深度学习-第T1周——实现mnist手写数字识别深度学习-第P1周——实现mnist手写数字识别一、前言二、我的环境三、前期工作1、导入依赖项并设置GPU2、导入数据集3、归一化4、可视化图片5、调整图片格式四、构建简单的CNN网络五、编译并训练模型1、设置超参数2、编写训练函数六、预…...
质量保障(QA)和质量控制(QC)
质量保证和质量控制是比较容易混淆的一组概念。定义实施质量保证是执行过程组的一个过程,而质量控制是监控过程组的一个过程。质量保证的定义:审计质量要求和质量控制测量结果,确保采用合理的质量标准和操作性定义的过程。简单地说࿰…...
你真的会用三元运算符吗?
在我们日常搬砖中,我们经常会看到三元运算符,但是你了解三元运算符到底是怎么用吗?接下来我们就下来详细介绍一下三元运算符大厂面试题分享 面试题库前后端面试题库 (面试必备) 推荐:★★★★★地址&#x…...
TIA博途中使用SCL语言实现选择排序算法并封装成FC全局库
TIA博途中使用SCL语言实现选择排序算法并封装成FC全局库 选择排序算法包括升序和降序2种: 升序排列: 第一轮从数据源中找到最小值排在第一位,第二轮从剩下的数据中寻找最小值排在第二位,依次类推,直到所有数据完成遍历;降序排列: 第一轮从数据源中找到最大值排在第一位,…...
【C++修炼之路】24.哈希应用--位图
每一个不曾起舞的日子都是对生命的辜负 哈希应用--位图哈希应用:位图一.提出问题二.位图概念三.位图代码四.位图应用五.经典问题哈希应用:位图 一.提出问题 问题: 给40亿个不重复的无符号整数,没排过序。给一个无符号整数&#x…...
4. 字符设备驱动高级--- 下篇
文章目录一、字符设备驱动高级1.1 注册字符设备驱动新接口1.1.1 新接口与旧接口1.1.2 cdev介绍1.1.3 设备号1.1.4 编程实践1.1.5 alloc_chrdev_region自动分配设备号1.1.6 中途出错的倒影式错误处理方法二、字符设备驱动注册代码分析2.1 旧接口register_chrdev2.2 新接口regist…...
ChatGPT介绍以及一些使用案例
❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…...
PCL 点云高斯混合聚类(GMM)
文章目录 一、简介二、算法实现三、实现效果参考资料一、简介 与k均值使用原型向量来刻画聚类结构不同,高斯混合聚类(Mixture-of-Gaussian)采用了概率模型来表达聚类原型。从名字中就可以知晓,该方法将会结合高斯分布来进行聚类过程,该分布的概率密度函数定义如下所示: p (…...
Docker学习(十六)踩坑,如何将对容器的修改同步到基础镜像中
目录1.背景2.解决方法1)将容器文件进行归档2)创建一个新的 Dockerfile3)构建新的基础镜像3.注意事项4.commit命令踩坑记录1.背景 最近接手了一个docker服务,现需要对镜像进行修改,原始的 Dockerfile 已经丢失ÿ…...
食品与疾病关系预测赛题
和鲸平台数据分析实战 题目:食品与疾病关系预测算法赛道 一、赛题描述 食品与疾病关系预测算法赛道 越来越多的证据表明,食物分子与慢性疾病之间存在关联甚至治疗关系。营养成分可能直接或间接地作用于人类基因组,并调节参与疾病风险和疾病…...
Symbol
Symbol是ES6新增的一种基本数据类型 它用来表示独一无二的值, 通过Symbol函数生成 Symbol前面不能加new ,创建symbol类型指的时候传入一个参数,这个参数需要是字符串 使用Symbol函数创建一个symbol类型值,可以给它传入一个字符串参数…...
NC65 对上年度反结账,调整数据后重新结账后,对本年度年初重算时系统报错:更新记数错误。
1、对上年度反结账,调整数据后重新结账后,对本年度年初重算时系统报错:更新记数错误。 解决方案: 1、在期初余额节点,按Ctrl+ALT+A重建期初凭证; 2、到结账节点,重建余额表,选择有问题的财务核算账簿,注意:会计期间要放空; 3、到期初余额节点,将刚才删除期初数据的…...
位运算相关
文章目录一、求1的个数二、另类加法三、数组中出现一次的数字四、数组中出现一次的数字变形一、求1的个数 二进制中1的个数 法一:逐位判断 根据与&运算 n&10,说明n的最右边一位为0 n&11,说明n的最右边一位为1 所以思路就是&…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
