一、模块初识
举例:引用sys标准库
import sys print(“参数如下:”) for i in sys.argv: print(i) print(‘\n\nPython路径为:’,sys.path,’\n’)
运行结果如下:
参数如下: D:/pyProject/cz/blog/001.py Python的路径为: ['D:\\pyProject\\cz\\blog', 'D:\\pyProject\\cz', 'C:\\Users\\陈展\\AppData\\Local\\Programs\\Python\\Python36-32\\python36.zip', 'C:\\Users\\陈展\\AppData\\Local\\Programs\\Python\\Python36-32\\DLLs', 'C:\\Users\\陈展\\AppData\\Local\\Programs\\Python\\Python36-32\\lib', 'C:\\Users\\陈展\\AppData\\Local\\Programs\\Python\\Python36-32', 'C:\\Users\\陈展\\AppData\\Local\\Programs\\Python\\Python36-32\\lib\\site-packages', 'D:\\Program Files\\JetBrains\\PyCharm 2017.3\\helpers\\pycharm_matplotlib_backend']
import语句
想使用某模块,要在程序开头使用import引入该模块。
一个模块只会被引入一次,不管执行多少次import。
Python解释器怎样查找到模块所在文件的?
默认在当前目录下查找,找不到则在全局环境变量中查找。
from...import...语句
从模块中导入指定的部分到当前命名空间内。
from modelName import name1
from...import*语句
把模块中的所有内容都导入到当前命名空间内。
二、pyc相关
python是一门先编译后解释的语言
PyCodeObject和pyc
PyCodeObject是python编译器编译后的结果。
当python运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当程序运行结束时,python解释器则将PyCodeObject写回到pyc文件中,当python第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到则直接载入,否则重复以上过程。
综上所述,pyc文件其实是PyCodeObject的一种持久化保存方式。
三、python数据类型
Python中,每个变量在使用前必须赋值,变量赋值以后才会被创建。
在python中,变量就是变量,没有类型,所谓的类型是指内存中对象的类型。
数字 | int(整型) long(长整型):python的长整数没有指定位宽 float(浮点型) complex(复数) |
布尔值 | 真或假 1或0 |
字符串 | 字符串拼接: python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时,需要在内存中开辟一个连续的空间, 并且一旦需要修改字符串的话,就需要再次开辟空间,+号每出现一次就会在内存中重新开辟一块空间。 |
四、python运算符
运算符的优先级
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 'AND' |
^ | | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |
五、bytes数据类型
六、列表
names=["别克","大众","奔驰","宝马"] print(names) print(names[0],names[2]) #切片 print(names[0:2]) print(names[-3:-1]) print(names[-2:]) #追加 names.append("奇瑞") #指定位置 names.insert(1,"Havel") #改 names[2]="五菱宏光" #删除 names.remove("大众") del names[2] names.pop()#指定删除某个位置的值,默认删除最后一个 #查找值所在的位置 print(names.index("宝马")) #反转 names.reverse() #排序,按照ASCII码排序 names.sort() #扩展 names2=[1,2,3,4] names.extend(names2)
深浅copy
import copy copy.deepcopy() #深复制 copy.copy() #浅复制 浅copy的几种方法 import copy person=['name',['age',28]] p1=copy.copy(person) p2=person[:] p3=list(person)
七、字典
基本格式:
key-value
特点:
字典是无序的,key必须是唯一,天生去重(重复)
举例:
#key-value info={ 'stu001':"chenzhan", 'stu002':"zhanchen", 'stu003':"heheda" } print(info["stu001"]) #修改,如果存在就修改,不存在就添加 info["stu001"]="陈展" #删除 del info["stu001"] #或者 info.pop("stu001") #或者(随机删除) info.popitem()
转换成列表
b={ 'stu001':"111111", 1:3, 2:5 } info.update(b) print(info) info.items()
参考资料:
#更加高效的循环 for i in info: print(i,info[i]) for k,v in info.items(): print(k,v)