好处:强迫代码格式化,强迫少用缩进
坏处:“复制-粘贴”失效,无法自动格式化
if x:print(True)
只要 x 是非零,非空白字符串,非空 list,非 None 等空白或空值,就判断为 True,否则为 False
类型 | 精度 | 大小 | 说明 |
---|---|---|---|
整型 | 精确 | 无大小限制 | 十六进制,以 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 解释器干了两件事情:
变量本身类型不变的计算机编程语言为动态语言
常量
常量就是不能变的变量,Python 通常用全部大写的变量名表示常量,Python 不强制常量无法修改
编码与解码
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
一种有序的集合,可以随时添加或删除其中的元素,元素的类型可以不同
方法 | 说明 |
---|---|
[] | 索引,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
另一种有序集合,一旦初始化不能修改(指向不变
:变量所指向的实例不能修改)
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)
与 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 也是不可变对象
专栏:《Python 基础》
PS:感谢每一位志同道合者的阅读,欢迎关注、评论、赞!