变量和常量
变量
变量数据类型在赋值时确定
n = 123 m = "456" p = True
变量的三元运算
a, b, c = 1, 3, 5 d = a if a>b else b print(d) a = 7 e = a if a>b else b print(e)
常量
用大写变量来表示常量
PI=3.14159265358979323846264338327950288
模块
引入模块
import os import sys
模块查找路径
D:\PycharmProjects\oldboy-14\Day2 D:\PycharmProjects\oldboy-14 D:\PycharmProjects\oldboy-14\venv-python35\Scripts\python35.zip C:\Users\Bob\AppData\Local\Programs\Python\Python35\DLLs C:\Users\Bob\AppData\Local\Programs\Python\Python35\lib C:\Users\Bob\AppData\Local\Programs\Python\Python35 D:\PycharmProjects\oldboy-14\venv-python35 D:\PycharmProjects\oldboy-14\venv-python35\lib\site-packages C:\Users\Bob\AppData\Local\Programs\Python\Python35\lib\site-packages C:\Program Files\JetBrains\PyCharm 2018.3\helpers\pycharm_matplotlib_backend
pyc文件
python 先对源码进行预编译,预编译的结果存放在内存中,执行完毕后再将预编译内容写入pyc文件,下次如果源码未改动则直接加载pyc文件到内存中执行
数据类型
整数
1 -1 0 0xff00 #16进制数
浮点数
3.14 1.23e9 #科学计数法1230000000 1.23e-5 #0.0000123
字符串
# \ 转义符 >>> print('I\'m OK') I'm OK # \n 换行 >>> print('123\n456') 123 456 # r' 批量转义 >>> print(r'\t') \t # '''xxx''' 多行字符串 >>> print('''1 ... 2 ... 3''') 1 2 3 # 组合r和''' >>> print(r'''1\n ... 2''') 1\n 2 >>> print('''1\n ... 2''') 1 2
bytes类型
表示二进制的数据类型,如视频、图像文件的内容
二进制与字符串转换
1 2 3 4 |
msg = "你好,世界" print(msg.encode()) print(msg.encode().decode()) |
结果:
b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c' 你好,世界
布尔值
# True or False, 1 or 0 >>> True True >>> False False >>> 3 > 2 True >>> 3 > 5 False
列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
names = ["ZhangSan", "LiSi", "WangWu", "ZhaoLiu"] #列表切片 print(names) #打印列表 print(names[2]) #打印列表第三个元素 print(names[0:3]) #打印第1-4个元素开头位置之间的元素 print(names[:3]) #打印从开头到第四个元素开头位置的元素 print(names[-3:-1]) #打印倒数第三到倒数第一个元素开头位置的元素 print(names[-2:]) #打印倒数第二个元素开头到最后一个元素结尾位置的元素 #列表操作 _names = ["Alex",["AAA", "BBB"],"LiSi"] #列表嵌套 names.extend(_names) #追加新列表到当前列表尾端 names.append("HuHu") #在列表末尾追加元素 names.insert(1,"YangYang") #在列表指定位置插入元素 names.pop(0) #删除指定位置的元素 names.remove("WangWu") #删除指定的元素内容 names2 = names.copy() #复制列表 names[2]="WangWang" #修改指定位置的元素 names[names.index(["AAA", "BBB"])][0]="CCC" #修改嵌套列表指定元素(对浅Copy会同样修改) print(names.index("Alex")) #列出指定元素所在的位置 print(names.count("LiSi")) #统计指定元素在列表中的数量 print(names2) print(names.reverse()) #反转列表,注意,没有返回值! print(names) |
元组
元组相当于一个只读列表
style = ("name","sex","age") print(style.index("sex")) print(style.count("age"))
字典
字典是一个KV类型的数据类型,字典中的内容没有顺序,依靠KEY进行查找
dic1 = { "广州": { "花都": "001", "越秀": "002", "海珠": "003", "黄埔": "004" }, "深圳": { "宝安": "011", "龙华": "012", "福田": "013" } }
添加修改键值
dic1["深圳"]["南山"] = "014" dic1["广州"]["黄埔"] = "005"
集合
集合是一个无序的,不重复的数据组合,主要用来去重和进行关系测试
去重
1 2 3 4 5 |
list_set1 = {1, 3, 5, 3, 2, 7, 9, 1} print("list_set1", list_set1) list_set2 = {2, 4, 6, 8, 1,1} print("list_set2", list_set1) |
交集
求两个集合的公共元素
1 |
print("交集:", list_set1.intersection(list_set2)) |
并集
求两个集合合并并去重后的集
1 |
print("并集:",list_set1.union(list_set2)) |
差集
求集合A中存在而集合B中不存在的项
1 2 |
print("差集1:", list_set1.difference(list_set2)) print("差集2:", list_set2.difference(list_set1)) |
对称差集
求两个集合互相不存在的项
1 |
print("对称差集:", list_set1.symmetric_difference(list_set2)) |
父集与子集
子集:集合A的项目是否都在集合B中存在
父集:集合A是否包含所有集合B的项
1 2 |
print("子集", list_set3.issubset(list_set1)) print("父集", list_set1.issuperset(list_set3)) |
空交集
判断是否两集合无交集
1 2 |
list_set4 = {11, 23} print("isdisjoint", list_set1.isdisjoint(list_set4)) |
移除交集
从集合中移除与指定集合的交集
1 2 |
list_set1.difference_update(list_set2) print("difference_update", list_set1) |
合并
更新集合为自身与指定集合的并集
1 2 |
list_set1.update(list_set2) print("update", list_set1) |
删除项目
1 2 3 4 5 |
# 移除指定项目:remove方法移除不存在元素会报错 list_set1.discard(10) print("discard(10)", list_set1) list_set1.discard(9) print("discard(9)", list_set1) |
原文链接:Python 从入门到放弃 - Lesson 2 变量、常用数据类型,转载请注明来源!