一木.溪桥学Python-04: Python基础数据类型int ,float ,bool ,complex,None,str, 转义字符
一木.溪桥 在Logic Education跟Amy学Python
12期:Python基础课
一木.溪桥学Python-04: Python基础数据类型int ,float ,bool ,complex,None,str, 转义字符
日期:2020年12月21日
学习目标:
- 数值类型:int ,float ,bool ,complex
- 空值类型:None
- 序列类型:str
学习内容:
Python 基础数据类型
为什么会有数据类型?
- 更好分配管理内存
- 方便统一管理
- 更贴近人类分类管理习惯
数据类型种类
- 数值类型:int ,float ,bool ,complex
- 序列类型:str , tuple , bytes (不可变) list(可变)
- 集合类型:set
- 映射类型:dict
数值类型:int ,float ,bool ,complex
- 数值类型是不可变类型。指的是类型的值一旦有不同了,那么它就是一个全新的对象。
数字1和2分别代表两个不同的对象,对变量重新赋值一个数字类型,会新建一个数字对象。 - Python 的变量和数据类型的关系,变量只是对某个对象的引用或者说代号、名字、调用等等,变量本身没有数据类型的概念 。
只有1,[1,2],"hello"这一类对象才具有数据类型的概念。
int
- 通常用十进制(decimal) 来表示
- 有时用八进制或十六进制来表示
- 十六进制用 0x 前缀和 0-9 , a-f 表示,例如: 0xff00 。 python 中使用 hex() 将十进制转为十六
进制 - 八进制用 0o 前缀和 0-7 表示,例如 0o45 。 python 中使用 oct() 将十进制转为八进制
- 二进制用 0b 前缀和 0-1 表示,例如 0b11 。 python 中使用 bin() 将十进制转为二进制
- python 中int长度为32位,并且通常是连续分配内存空间的。eg.–>id(1),id(2)之间差32。
- 小整数对象池
python 初始化的时候会自动建立一个小整数对象池,方便我们调用,避免后期重复生成!这是一个包含262个指向整数对象的指针数组,范围是-5到256。也就是说比如整数10,即使我们在程序里没有创建它,其实在 Python 后台已经悄悄为我们创建了。
作用:节省开销,增快运行速度 - 整数缓冲区
刚被删除的整数不会被真正立刻删除回收,而是在后台缓冲一段时间,等待下一次的可能调用。
注意:在交互环境当中演示不出来效果。该效果在pycharm当中实现;并且注意不是小整数对象池当中的值。
float
- 浮点数也就是小数,如1.21
- 对于很大或很小的浮点数,一般用科学计数法表示,把10用e替代,1.23x10^9就是1.23e9,或者12.3e8 ; 0.000012可以写成1.2e-5 .
- float与int之间的转换
float(x) -> floating point number -->float(1) --> 1.0
int(x=0) -> integer -->int(2.5) --> 2 (只取整数部分)
complex 复数
- 复数由 实数部分 和 虚数部分 构成,可以用 a + bj, 或者 complex(a,b) 表示,复数的 实部a 和 虚部b 都是浮点。
数学计算
对于数学计算,除了前面提到过的简单的加减乘除等等,更多的科学计算需要导入 math 这个标准库,它包含了绝大多数我们可能需要的科学计算函数。
math 是Python自带函数,不用安装,但需要导入
import math
print(math.ceil(4.1)) # math.ceil向上取整
print(math.floor(4.5)) # math.floor向下取整
print(math.pow(2, 3)) # math.pow(x,y),x**y 幂abs(x) 取绝对值
round(x)
Python 3进行改良,不再四舍五入,而是四舍六入五成偶。print(round(4.1)) # 舍去为4
print(round(4.5)) # 舍去为4
print(round(4.6)) # 进1为5
print(round(3.5)) #五成偶
bool
在Python中,布尔类型只有两个值,True 与 False。
tips:
- 数值类型:0、0.0的 bool 值都为 False,其它的都为 True。
- 字符串:空字符串的 bool 值为 False,其它的都为 True。注意空格字符串为 True。
- 列表:空列表的 bool 值为False,其它的都为 True。
- None:的 bool 值永远为 False。
- bool运算
and 运算
or 运算
not 运算
算术运算,注意:把 True 看作1,而 False 看作 0
空值类型
None
空值不是布尔类型,是 Python 里一个特殊的值,用 None 表示(首字母大写)。
None 不能理解为0,因为0是整数类型,而 None 是一个特殊的值。None 也不是
布尔类型,而是 NoneType。
序列类型
str
- 字符串是 Python 中最常用的数据类型之一,使用单引号或双引号来创建字符串,使用三引号创建多行字符串。
- tips:
字符串的单引号与双引号都是 成对 出现的,不能一边单一边双。
字符串是不可变的序列数据类型,不能直接修改字符串本身,和数字类型一样! - 整数在内存中占 一个字节,字符串不管中间多少内容都要 单独存储。
字符串的下标 (重点)
==由于字符串是 序列数据结构 ,所以我们可以通过 下标 将字符串中某个字母取出来。下标也可称为索引,默认从0开始。==
字符串的切片 ( 重点)
- tips:
[:]–全取
[::2]–步长为2
[::-1]–步长为-1
切片特点左闭右开
索引默认从0开始
当是取单个字符的时候,索引超出范围会报错。而切片时不会报错
步长不能为0,也不允许为浮点数
字符串组成方式
字符串相加
字符串格式化%s %d %fstr.format()
python3.6.4 引入 f''
- %s %d %f 的弊端:要考虑数据类型
%s --> str
%d --> digt/decimal
%f --> float
name = "DXD"age = 20print("%s 的年龄为%d " % (name, age))run:
DXD 的年龄为20
- str.format()的特点:
不用考虑数据类型,+下标后交换位置
name = "DXD"age = 20print("{0} 的年龄为{1} " .format(name, age))run:
DXD 的年龄为20
- f’’{}…{} "
name = "DXD"age = 20print(f"{name} 的年龄为{age} ")run:
DXD 的年龄为20
转义字符
- 转义字符是一种特殊的字符常量。转义字符以反斜线""开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。
- 字符串中可以使用反斜线进行转义;如果字符串本身包含反斜线,则需要使用“\”表示,“\”就是转义字符。
符号 | 作用 |
---|---|
\\ | 把反斜杠的“转义字符”作用去除,即变为真正的反斜杠。显示( \ ) |
\’ | 把单引号的“表示字符串”作用去除。显示( ’ ) |
" | 把双引号的“表示字符串”作用去除。显示( " ) |
\a | 把 a 转成“响铃”(BEL) |
\b | 把 b 转成“退格符”(BS) |
\n | 把 n 转成“换行符”(LF) |
\e | 转义 |
\000 | 空 |
\t | 把 t 转成“水平制表符”(TAB) |
\v | 把 v 转成“垂直制表符”(VT) |
\r | 把 r 转成“回车符”(CR) |
\f | 把 f 转成“换页符”(FF) |
\0dd | 把 dd 转成“八进制”对应的ASCII码 |
\xhh | 把 hh 转成“十六进制”对应的ASCII码 |
\other | 其它的字符以普通格式输出 |
作业:
作业答案:
题1:
opt = input("请选择: \'Y\' or \'N\': ")if opt in('y', 'Y'):print("进入卸载")
elif opt in('n', 'N'):print("退出卸载")
else:print("输入不在选项范围之内!")
run:请选择: 'Y' or 'N': y
进入卸载请选择: 'Y' or 'N': n
退出卸载请选择: 'Y' or 'N':G
输入不在选项范围之内!
题2:
bool:
- 数值类型:0、0.0的 bool 值都为 False,其它的都为 True。
- 字符串:空字符串的 bool 值为 False,其它的都为 True。注意空格字符串为 True。
- 列表:空列表的 bool 值为False,其它的都为 True。
- None:的 bool 值永远为 False。
str:
- %d -->degit/decimal
- %s -->str
- %f -->float
- str.format()
- f“ ”
题3:
input_str = input("请输入字符串: ")str_len = len(input_str)print(f"字符串长度为:{str_len}")if str_len < 20 :print(input_str[-1::-1])else:print("字符串长度需小于20,请重新输入!")
run1:
请输入字符串: aaaaaaaaaaahjk
字符串长度为:14
kjhaaaaaaaaaaarun2:
请输入字符串: aaaaaaaafffffffffffffffffff
字符串长度为:27
字符串长度需小于20,请重新输入!
题4:
34
一木.溪桥学Python-04: Python基础数据类型int ,float ,bool ,complex,None,str, 转义字符相关推荐
- 一木.溪桥学爬虫-04:requests模块
一木.溪桥 在Logic Education跟Jerry学爬虫 07期:Python 爬虫 一木.溪桥学爬虫-04:requests模块.cookie.session 日期:2021年1月31日 学习 ...
- 一木.溪桥学Python-03: Python 运算符
一木.溪桥 在Logic Education跟Amy学Python 12期:Python基础课 一木.溪桥学Python-03: Python 运算符 日期:2020年12月18日 学习目标: 算术. ...
- python bar函数循环_一木.溪桥学Python-08: for循环、function函数
一木.溪桥 在Logic Education跟Amy学Python 逻辑教育 :https://logicedu.ke.qq.com 12期:Python基础课 一木.溪桥学Python-08: fo ...
- 一木.溪桥学Python-14 异常捕获
一木.溪桥 在Logic Education跟Amy学Python 逻辑教育 :https://logicedu.ke.qq.com 12期:Python基础课 一木.溪桥学Python-14:异常捕 ...
- 一木.溪桥学Python-06:元组tuple、字典dict
一木.溪桥 在Logic Education跟Amy学Python 12期:Python基础课 一木.溪桥学Python-06:元组tuple.字典dict 日期:2020年12月25日 学习目标: ...
- 一木.溪桥学Python-10:函数闭包、装饰器、推导式
一木.溪桥 在Logic Education跟Amy学Python 逻辑教育 :https://logicedu.ke.qq.com 12期:Python基础课 一木.溪桥学Python-10:函数闭 ...
- 一木.溪桥学Python-11:迭代器、生成器、面象对象class MyClass:、self 参数、 __init__() 方法、__str__() 方法
一木.溪桥 在Logic Education跟Amy学Python 逻辑教育 :https://logicedu.ke.qq.com 12期:Python基础课 一木.溪桥学Python-11:迭代器 ...
- 一木.溪桥学Python-13:多继承、多态、常用魔法方法、单例模式
一木.溪桥 在Logic Education跟Amy学Python 逻辑教育 :https://logicedu.ke.qq.com 12期:Python基础课 一木.溪桥学Python-13:多继承 ...
- 一木.溪桥学Python-05: 字符串str、字节bytes、列表list、sort()、sorted()
一木.溪桥 在Logic Education跟Amy学Python 12期:Python基础课 一木.溪桥学Python-05: 字符串str.字节bytes.列表list.sort().sorted ...
最新文章
- .NET泛型解析(下)
- Python错误“ImportError: No module named MySQLdb”解决方法
- Android:展开/折叠动画
- Ubuntu 进入、退出命令行的快捷键
- swift项目第一天:环境部署
- Python按行输出文件内容具体解释及延伸
- 【重复制造精讲】Backflush 倒冲介绍
- python爬虫 -- 正则表达式 与 Re模块的介绍
- Linux终端管理软件
- python函数理解,python对函数的理解
- deprecated_@Deprecated新外观可能是什么?
- 吴恩达深度学习 —— 4.5 搭建深层神经网络块
- (1)封装 (2)static关键字 (3)继承
- 库 v10怎么安装_22000Pa强劲吸力加高续航,追觅V10无线吸尘器体验
- 【ASP.Net MVC3 】使用Unity 实现依赖注入
- ADO.NET数据库编程
- [Javascript]js判断是否为undefined类型
- 基于javaweb+springboot的在线购书系统网上书店图书商城(前台、后台)(java+Springboot+ssm+mysql+maven)
- 安装了java环境后,双击.jar包无法运行的解决方案
- 微信小程序原生自定义组件布局问题
热门文章
- 企业新闻稿怎么写?教你撰写企业新闻稿
- python调用通达信函数_Python读取通达信本地数据
- linux 下PDF文档的压缩
- 信息架构:超越Web设计(第4版)(全彩) 中文pdf扫描版
- 异常:calling prepareStatement is no longer allowed! Increase reapTimeout to avoid this problem
- java计算机毕业设计线上远程教学及自主学平台的设计与实现源码+系统+数据库+lw文档
- IE-LAB网络实验室:CCNA认证在哪考?
- 鸿翼ECM文档云:让远程办公更便捷,提升企业办公效率
- Keil C51中断编程中寄存器组的选用与保护
- PG Music Band-in-a-Box 2021 + RealBand WiN 智能伴奏软件安装升级包