1. 数字类型
1.0 type()函数
type(变量)
print(type(变量)) # 打印出变量的数据类型
1.1 int
不需要像 C/C++ 一样先定义,直接声明即可。
a = 2
print(type(a))
1.2 float
与 C/C++ 不同,Python 中的 float 精度更高,范围在 -3.4028235 x 10^38 ~ 3.4028235 x 10^38 之间。
a = 2.333
b = 5.
print(type(a))
print(type(b))
1.3 complex
在 Python 中可以直接表示复数类型。
a = 1 + 2j
print(type(a))
2. 运算符
2.1 除法
除法:/
向下取整除法 ://
a = 10
b = 3
c = a / b
d = a // b
print("c: ", c, type(c))
print("d: ", d, type(d))
可以得知,/ 运算返回一个 float 类型,而 // 返回 int 类型。
2.2 取余
取余:%
a = 10
b = 3
c = a % b
d = b % a
print("c: ", c, type(c))
print("d: ", d, type(d))
% 运算返回 int 类型。
2.3 乘法
乘法:*
乘方:**
a = 10
b = 3.0
c = a * b
d = a ** b
print("c: ", c, type(c))
print("d: ", d, type(d))
*或 ** 运算返回精度更高的类型。
2.4 比较运算符
等于:==
不等于:!=
大于:>
大于等于:>=
小于:<
小于等于:<=
a = 1
b = 2
c = 1
print(a == b)
print(a == c)
print(a != b)
print(a > b)
print(a >= c)
print(a < b)
print(b <= c)
3. 字符串
3.1 基本操作
声明即可赋值
a = 'abcd'
b = "abcd"
c = """abcd"""
print("a: ", a, type(a))
print("b: ", b, type(b))
print("c: ", c, type(c))
print(a, b, c)
\ 用于转义,例如:
a = 'a'bc'd' 错误语句
b = "a'bc'd"
c = "a\'bc\'d"
# print("a: ", a, type(a))
print("b: ", b, type(b))
print("c: ", c, type(c))
取消全部的转义在前面加上 r:
print("a\nbcd")
print(r"a\nbcd")
字符串字面值可以包含多行,使用三重引号:"""…""" 或 ‘’’…’’’:
a = """
'a' is a string
Python is instring
"""
print(a)
使用 + 进行拼接,* 进行重复:
a = "abcd"
b = "efgh"
c = a + b
d = a * 2 + b * 3
print("c: ", c, type(c))
print("d: ", d, type(d))
3.2 索引和切片
3.2.1 索引
字符串支持索引(下标访问),第一个字符的索引是 0,单个字符没有专用的类型,就是长度为一的字符串:
a = "abcd"
print(a[0])
print(a[2])
索引支持负数,用负数索引时,从右边开始计数:
a = "abcd"
print(a[0])
print(a[-0]) # -0 和 0 一样
print(a[1])
print(a[-1]) # 负数索引从 -1 开始
Python 字符串不能修改,是 immutable 的:
a = "abcd"
# a[0] = "d" 报错
值得注意的是,由于 Python 中的字符串是不可改变的,连接两个字符串会创建一个新的字符串,而不是修改一个现有的字符串:
string = "abc defg hijk"
new_string = ""
for i in string:
if i != ' ':
new_string += i
print(new_string)
3.2.2 切片
索引可以提取单个字符,切片则提取子字符串:
语法:str[起始位:终止位:步长]
省略开始索引时,默认值为 0,省略结束索引时,默认为到字符串的结尾。
切片开始包括起始位元素,截至到终止位的前一个元素,即不包含终止位元素。
其中步长可省略,默认为1,切片返回一个新的字符串。
a = "abcd"
b = a[0:2]
c = a[2:4]
d = a[:2]
e = a[2:]
f = a[:]
g = a[0:4:2]
h = a[-1::-1]
i = a[0:100]
print(b)
print(c)
print(d) # 起始索引默认为 0
print(e) # 结束索引默认为字符串结尾
print(f)
print(g) # 步长为 2,每 2 个元素取一个
print(h) # 步长为负数,从左往右切
print(i) # 切片越界自动处理
注意:索引越界会报错,切片越界会自动处理。
3.3 常用内置函数
a = "ABC is a dog"
print(len(a)) # len() 返回字符串的长度,
print(a.title()) # 给每个单词首字母大写
print(a.upper()) # 把所有字母变成大写
a = a.upper()
print(a.lower()) # 把所有字母变成小写
b = " ABC is a dog "
print(b.lstrip()) # 去除头空格
print(b.rstrip()) # 去除尾空格
print(b.strip()) # 去除头尾空格
4. 列表与元组
Python 支持多种复合数据类型,可将不同值组合在一起。最常用的列表,是用方括号标注,逗号分隔的一组值。列表可以包含不同类型的元素,但一般情况下,各个元素的类型相同:
a = [1, 2, 3, 4]
b = ['a', 'b', 'c', 'd']
c = ['a', '2', '3.33', "cde"]
d = a + b # 支持 + 合并
e = c * 2 + d * 3 # 支持 * 合并
print("a: ", a, type(a))
print("b: ", b, type(b))
print("c: ", c, type(c))
print("d: ", d, type(d))
print("e: ", e, type(e))
4.1 列表索引和切片
4.1.1 索引
和数组操作相同:
a = [1, 2, 3, 4]
b = ['a', 'b', 'c', 'd']
c = ['a', '2', '3.33', "cde"]
print(a[0])
print(b[1])
print(c[2])
与 immutable 字符串不同, 列表是 mutable 类型,其内容可以改变:
a = [1, 2, 3, 4]
b = ['a', 'b', 'c', 'd']
c = ['a', '2', '3.33', "cde"]
a[0], b[1], c[2] = 100, 'x', "abc"
print("a: ", a, type(a))
print("b: ", b, type(b))
print("c: ", c, type(c))
4.1.2 切片
切片操作返回包含请求元素的新列表,切片操作会返回列表的浅拷贝:
a = [1, 2, 3, 4]
b = a[0:2]
c = a[2:]
print(b)
print(c)
4.2 嵌套列表
a = [1, 2, 3, 4]
b = ['a', 'b', 'c', 'd']
c = ['a', '2', '3.33', "cde"]
e = [a, b, c]
print("e: ", e, type(e))
print(e[0][0], e[1][1], e[2][2])
4.3 列表常用内置函数
a = [1, 2, 3, 4]
print("len(a): ", len(a)) # len() 返回列表的长度
a.append(5) # 在 a 末尾添加元素 5
print("a.append(5): ", a)
a.insert(1, 3) # 在位置 1 处插入元素 3
print("a.insert(1, 3): " ,a)
a.remove(3) # 删除第一个值为 3 的元素
print("a.remove(3): ", a)
# a.remove(0) 删除的元素不存在则会触发 ValueError 异常
a.pop(0) # pop(i) 删除指定位置 i 的元素
print("a.pop(0):", a)
a.pop() # 未传入参数时默认删除末尾元素
print(a)
a = [1, 2, 3, 4, 5]
del a[1:3] # 删除列表的切片
print("del a[1:3]:", a)
a = [6, 5, 4, 3, 2, 1, 1]
print("a.count(1): ", a.count(1)) # count(x) 返回值为 x 的元素出现的次数
a.sort() # 默认从小到大排序
print("a.sort(): ", a)
a.sort(reverse=True) # 传入参数从大到小排序
print("a.sort(reverse=True): ", a)
b = sorted(a) # 默认从小到大排序
print("b: ", b)
b = sorted(a, reverse=True) # 传入参数从大到小排序
print("b: ", b)
a.reverse