Python对象
number
-
Python Number 数据类型用于存储数值。数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。
-
可以使用del释放内存
-
# 您可以通过使用del语句删除单个或多个对象,例如: del var del var_a, var_b
-
-
Python 支持四种不同的数值类型:
-
整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。
-
长整型(long integers) - 无限大小的整数,整数最后是一个大写或小写的L。
-
浮点型(floating point real values) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 10^2 = 250)
-
复数(complex numbers) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
-
int long float complex 10 51924361L 0.0 3.14j 100 -0x19323L 15.20 45.j -786 0122L -21.9 9.322e-36j 080 0xDEFABCECBDAECBFBAEl 32.3+e18 .876j -0490 535633629843L -90. -.6545+0J -0x260 -052318172735L -32.54e100 3e+26J 0x69 -4721885298529L 70.2-E12 4.53e-7j
-
-
# python的类型转换 int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]) 创建一个复数 str(x ) 将对象 x 转换为字符串 repr(x ) 将对象 x 转换为表达式字符串 eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象 tuple(s ) 将序列 s 转换为一个元组 list(s ) 将序列 s 转换为一个列表 chr(x ) 将一个整数转换为一个字符 unichr(x ) 将一个整数转换为Unicode字符 ord(x ) 将一个字符转换为它的整数值 hex(x ) 将一个整数转换为一个十六进制字符串 oct(x ) 将一个整数转换为一个八进制字符串 # number对象 var1, var2 = 15, 20 print(var1 + var2) # 十六进制 八进制 二进制 print(hex(var1 + var2)) print(oct(var1 + var2)) print(bin(var1 + var2)) # 释放对象 del var1, var2
-
Python 中数学运算常用的函数基本都在 math 模块、cmath 模块中。
- math 模块提供了许多对浮点数的数学运算函数。
- cmath 模块包含了一些用于复数运算的函数。cmath 模块的函数跟 math 模块函数基本一致,
- 区别: cmath 模块运算的是复数,math 模块运算的是数学运算。要使用 math 或 cmath 函数必须先导入:
-
基本函数
-
函数 返回值 ( 描述 ) abs(x) 返回数字的绝对值,如abs(-10) 返回 10 ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5 cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1 exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045 fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0 floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4 log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0 log10(x) 返回以10为基数的x的对数,如math.log10(100)返回 2.0 max(x1, x2,…) 返回给定参数的最大值,参数可以为序列。 min(x1, x2,…) 返回给定参数的最小值,参数可以为序列。 modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 pow(x, y) x**y 运算后的值。 round(x ,n) 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。 sqrt(x) 返回数字x的平方根
-
-
# math库 from cmath import e, pi from math import sqrt tp, cp, vp = -15, 15, 1 # 取绝对值 print(abs(tp)) # 取最大值 print(max(tp, cp, vp)) # 取最小值 print(min(tp, cp, vp)) # 取m的n次幂 print(pow(tp, vp + 1)) # 取平方根 print(sqrt(pow(tp, 2))) # pi和e print(pi, e)
-
随机数
-
函数 描述 choice(seq) 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。 randrange ([start,] stop [,step]) 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1 random() 随机生成下一个实数,它在[0,1)范围内。 seed([x]) 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。 shuffle(lst) 将序列的所有元素随机排序 uniform(x, y) 随机生成下一个实数,它在[x,y]范围内。 -
# 随机数 print(choice(range(10))) print(random() * 10) st = [12, 34, 43, 23, 13, 24] print('乱序前', st) # 将列表中的元素全部打乱,每次结果都不一样 shuffle(st) print('乱序后', st) # floor取下整数,uniform(x,y)取一个随机整数 print(floor(uniform(10, 100))) # 随机数种子 print(random())
-
字符串
-
字符串是 Python 中最常用的数据类型。我们可以使用引号 ( ’ 或 " ) 来创建字符串。
-
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。但是可以使用方括号来截取字符串
-
字符串的一些操作
-
操作符 描述 实例 + 字符串连接 >>>a + b ‘HelloPython’ * 重复输出字符串 >>>a * 2 ‘HelloHello’ [] 通过索引获取字符串中字符 >>>a[1] ‘e’ [ : ] 截取字符串中的一部分 >>>a[1:4] ‘ell’ in 成员运算符 - 如果字符串中包含给定的字符返回 True >>>“H” in a True not in 成员运算符 - 如果字符串中不包含给定的字符返回 True >>>“M” not in a True r/R 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 >>>print r’\n’ \n >>> print R’\n’ \n -
var1, var2 = 'hello', 'world' # 输出字符串 print(var1, var2) # 输出字符串中的子串 print(var1[1], var2[3:5]) # 字符串连接 print(var1 + var2) a = "Hello" b = "Python" print("a + b 输出结果:", a + b) print("a * 2 输出结果:", a * 2) print("a[1] 输出结果:", a[1]) print("a[1:4] 输出结果:", a[1:4]) if ("H" in a): print("H 在变量 a 中") else: print("H 不在变量 a 中") if ("M" not in a): print("M 不在变量 a 中") else: print("M 在变量 a 中") print(r'\n') print(R'\n') print("My name is %s and weight is %d kg!" % ('Zara', 21))
列表
-
列表相当于数组,可以修改数据,可以按所索引查找
-
列表的函数非常多
-
# 列表 a = [1, 3, 432, 532, 235, 25, 3251, 35, 13, 51] b = ['abc', 'efg', 'hij', 'rst'] print(a, b) # 列表可以直接相加 print(a + b) # 在列表末尾添加元素 a.append(55) b.append('123') print(a, b) # 删除列表元素 # 用索引删除元素 del a[0], b[0] print(a, b) # 根据值删除元素 a.remove(55) b.remove('rst') print(a, b) # 输出多次列表 元素和值的关系 print(b[0] * 3) print(3 in a) print('a' in b) # 迭代列表 # for x in a: # print(x) # 清空列表 print(a, '中最大的数为', max(a)) print(b, '中最大的数为', max(b)) # 反转列表 a.reverse() print(a) # 追加一个列表 # a.extend(b) print(a) # 对列表排序 a.sort() print(a) a.clear() print(a, b) # 根据索引获取元素 正数为正向,负数为逆向 print(b[1], b[-1])
元组
-
Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
-
元组的元素是不可修改的
-
元组的元素不能逐个删除,只能直接删除元组
-
# 元组 tup1 = (1, 2, 3, 4, 5) tup2 = ('hello', 'world', 'lol', 'cs') # 索引从0-n-1 print(tup1[1], tup2[2]) # 元组直接相加 print(tup2 + tup1) # 删除元组 a = tup1 b = tup2 del tup1, tup2 print(a) # 求元组中的元素个数 print(a, '中元素个数为:', len(a)) print(b, '中元素个数为:', len(b)) # 是否包含 print(3 in a) # 索引截取 print(a[1:3]) print(a[4:]) # 最大值、最小值函数、必须为同一种数值类型 print(a, '最大值为', max(a), '最小值为', min(a))
字典
-
字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中。
-
dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict。
-
键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
-
字典特性
- 元素的键不可修改,取值只能是固定的常量
- 元素的值可以取任意类型
-
# 字典运算 a = {'name': 'xiaomi', 'age': 20, 'class': 'wlgc183'} print(a['name'], a['age'], a['class']) # 修改元素的值 a['age'] = 25 a['class'] = 'huawei' print(a['name'], a['age'], a['class']) # 删除字典元素和清空 del a['name'] print(a) # 清空键值 # a.clear() print(a) # 字典转化为字符串 b = str(a) print(b) # 添加元素只需要直接增加即可 a['name'] = 'oppo' print(a) a['price'] = 1500 print(a) # 键的个数 print(len(a)) print(a.get('name')) b = a.items() print(b) b = a.keys() print(b) b = a.values() print(b)
时间与日期
-
Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。时间间隔是以秒为单位的浮点小数。每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。
-
时间元组
-
序号 字段 值 0 4位数年 2008 1 月 1 到 12 2 日 1到31 3 小时 0到23 4 分钟 0到59 5 秒 0到61 (60或61 是闰秒) 6 一周的第几日 0到6 (0是周一) 7 一年的第几日 1到366 (儒略历) 8 夏令时 -1, 0, 1, -1是决定是否为夏令时的旗帜 -
上述也就是struct_time元组。这种结构具有如下属性:
序号 属性 值 0 tm_year 2008 1 tm_mon 1 到 12 2 tm_mday 1 到 31 3 tm_hour 0 到 23 4 tm_min 0 到 59 5 tm_sec 0 到 61 (60或61 是闰秒) 6 tm_wday 0到6 (0是周一) 7 tm_yday 1 到 366(儒略历) 8 tm_isdst -1, 0, 1, -1是决定是否为夏令时的旗帜
-
-
# 时间和日期对象 # 打印时间戳 from calendar import month from email.utils import localtime from time import asctime, time tim = time() print('本地时间为', tim) # 获取本地时间 tim = localtime() print('本地时间为', tim) # 格式化时间 tim = asctime() print('本地时间为', tim) # 获取某年某月的全部日期 cal = month(2022, 5) print(cal)