一、模块初识
举例:引用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数据类型
![](https://i-blog.csdnimg.cn/blog_migrate/68f9a558c72d6e5c31f210839b13dae7.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccc315c1a3ab99e3cf9d5fe5faf6c7df.png)
六、列表
![](https://i-blog.csdnimg.cn/blog_migrate/59ad05a911c873908a0cdbb3f95ad313.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b0168957cb1295228fa37513578cfc7e.gif)
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)