一、python基本数据类型
python基本数据类型有:数字类型Number、字符串类型String、布尔类型Boolean、空值类型None、列表类型List、元组类型Tuple、字典类型Dictionary、集合类型Set。
- 布尔类型:True和False
- 空值类型:python中特殊的值,用None表示。空值并不是意味着它的值为0。
二、数字类型
1. 不同的数字类型
数字类型包含:整数int、浮点数float、复数complex。
python3对整数类型没有大小限制。
print(type(5)) # <class 'int'>
print(type(3.9)) # <class 'float'>
print(type(1 + 2j)) # <class 'complex'>
2. 不同的数字类型转换
- int(x, base=10):将数字或全数字的字符串转化为整数
x:要转化的参数
如果无x参数,则返回0;
如果x参数为浮点数,则取整数部分(注:不会对整数进行四舍五入);
如果x参数为字符串,注意仅可为内容为数字的字符串,否则会报错ValueError;
如果x参数中含有运算符号(+-*/),则仅为运算操作时才可转换,否则报错ValueError。
base:基数,默认为10,有效的基数为0和2-36。
base为0时,表示将二进制字符串转化为整数 - eval(source[, globals, locals]):对一个字符串表达式进行求值操作并返回计算结果
source:字符串表达式,表达式中可包含有运算符号(+-*/);
若表达式中包含有字母,且该表达式未被命名时报错NameError;
若表达式中包含有字母,且该表达式被命名则会返回它的值。 - float(x):将数字或全数字的字符串转化为浮点数
- complex(real, imag=None):转化为复数real+image*1j
若imag未传参数时,默认为0,转化复复数为real+0j
real:实数部分,可为数字或字符串;但real若为字符串时,不可再向imag传入参数,否则会报错,故一般real不要设为字符串。
imag:虚数部分,仅可为数字; - chr(code):将ASCII值转换为其对应的字符
- ord(c):将一个字符转化成其对应的ASCII整数值
- hex(i):将整数转化为十六进制字符串
- oct(i):将整数转化为八进制字符串
# 强制转化为整型
print(int()) # 0
print(int(3.7)) # 3
print(int(-2.925)) # -2
print(int("123")) # 123
print(int("abc")) # 会报错提示ValueError
print(int(5+2)) # 7
print(int("5+2")) # 会报错提示ValueError
print(int('0b100', base=0)) # 4
# 将字符串表达式转化为整型
print(eval("123")) # 123
print(eval("5+2")) # 7
print(eval("a123")) # 报错提示NameError: name 'a123' is not defined
a123 = 1
print(eval("a123")) # 1
# 强制转化为浮点型
print(float()) # 0.0
print(float(5)) # 5.0
print(float("4.3")) # 4.3
print(float(3+4)) # 7.0
# 强制转化为复数型
print(complex(3.5)) # (3.5+0j)
print(complex(3, 5)) # (3+5j)
print(complex("6")) # (6+0j)
print(complex("6", 2)) # 会报错提示TypeError: complex() can't take second arg if first is a string
# 将ASCII值转换为其对应的字符
print(chr(97)) # a
# 将一个字符转化为其对应的ASCII整数值
print(ord("a")) # 97
# 将整数转化为十六进制字符串
print(hex(17)) # 0x11
# 将整数转化为八进制字符串
print(oct(17)) # 0o21
3. 数学运算
3.1. 基本数学运算
- abs(x):取绝对值
- power(x, y):取x的y次方
- max(x1, x2, x3...):取最大值
- min(x1, x2, x3...):取最小值
- round(number, ndigits=None):取浮点数四舍五入的值
number:传入的数值
ndigits:保留小数点后面第几位数字;默认为None,表示不保留小数点
3.2. math模块的数学运算
导入模块:import math
- math.ceil(x):向上取整,取>=x的最小整数;
- math.floor(x):向下取整,取<=x的最大整数;
- math.sqrt(x):x开根号
# 基本数学运算
print(abs(-9.8)) # 取绝对值:9.8
print(pow(2, 3)) # 取x的y次方:8
print(max(1, 3, 9, 5)) # 取最大值:9
print(min(1, 3, 9, -5)) # 取最小值:-5
print(round(3.689089)) # 四舍五入:4
print(round(3.689089, 2)) # 3.69
# math模块数学运算
import math
print(math.ceil(4.2)) # 向上取整:5
print(math.ceil(-4.2)) # -4
print(math.floor(4.2)) # 向下取整:3
print(math.floor(-4.2)) # -5
print(math.sqrt(4)) # 开方:2.0
4. 随机数
导入模块:import random
- random.choice(seq):
从序列的元素中随机选择一个元素。seq:序列类型(即字符串、列表、元组、rang()数) - random.randint(a, b):
随机生成[a, b]范围内的整数,包括a和b。 - random.randrange(start, stop=None, step=1, _int=int):
随机生成[start, stop)范围内的,步长为step的整数。取值范围包含start,但不包含stop。start默认为0,setp默认为1。 - random.uniform(self, a, b):
随机生成[a, b]范围内的浮点数 - random.random():
随机生成[0, 1)范围内的随机浮点数。 - random.sample(population, k):
从population(序列或集合)中随机选择k个随机元素,返回值为列表类型。 - random.shuffle(x, random=None):
将列表x进行随机排序
import random
# 从序列中随机选择一个元素
print(random.choice("abc")) # 从字符串中随机选择一个字符
print(random.choice([1, "abc", 3])) # 从列表中随机选择一个元素
print(random.choice((1, "abc", 3))) # 从元组中随机选择一个元素
print(random.choice(range(1, 101))) # 生成1到100的随机数
# 取[1, 10]范围内的随机整数
print(random.randint(1, 10))
# 随机生成[0, 10]范围内的偶数
print(random.randrange(0, 11, 2))
# 随机生成[0,11)范围内的任意整数
print(random.randrange(11))
# 取[1, 10]范围内的随机浮点数
print(random.uniform(1, 1))
# 取[0, 1)范围内的随机浮点数
print(random.random())
# 从序列或集合中随机选择几个元素
print(random.sample("abcdefg", 3)) # ['e', 'f', 'd']
print(random.sample([1, 2, 3, 4, 5, 6], 3)) # [1, 4, 6]
print(random.sample((1, 2, 3, 4, 5, 6), 2)) # [4, 6]
# 将列表中值进行随机排序
num = [1, 2, 3, 'a', 'b']
random.shuffle(num) # 添加后num列表中各值位置发生变化
print(num)