模块及其数据类型小结
Posted brace2011
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模块及其数据类型小结相关的知识,希望对你有一定的参考价值。
1. 模块:
模块即库,分为:标准库和非标准库;
标准库就是不用安装,直接导入即可使用,反之就是需要安装的非标准库;
导入模块先从当前目录导入,所以编写脚本文件名时不能和标准库名相同
1>. sys模块:
import sys
1.1 sys.path #打印环境变量,模块存储路劲,只有存在这些目录下才能导入模块;
[‘D:\Python3\python_project\Project_1\Day-05-27‘, ‘D:\Python3\python_project\Project_1‘, ‘D:\Python3\python_project\Project_1\venv\Scripts\python36.zip‘, ‘C:\Users\brace.li\AppData\Local\Programs\Python\Python36-32\DLLs‘, ‘C:\Users\brace.li\AppData\Local\Programs\Python\Python36-32\lib‘, ‘C:\Users\brace.li\AppData\Local\Programs\Python\Python36-32‘, ‘D:\Python3\python_project\Project_1\venv‘, ‘D:\Python3\python_project\Project_1\venv\lib\site-packages‘, ‘D:\Python3\python_project\Project_1\venv\lib\site-packages\setuptools-39.0.1-py3.6.egg‘, ‘D:\Python3\python_project\Project_1\venv\lib\site-packages\pip-9.0.3-py3.6.egg‘, ‘C:\Program Files\JetBrains\PyCharm 2018.1.3\helpers\pycharm_matplotlib_backend‘]
模块即库,分为:标准库和非标准库;
标准库就是不用安装,直接导入即可使用,反之就是需要安装的非标准库;
导入模块先从当前目录导入,所以编写脚本文件名时不能和标准库名相同
1>. sys模块:
import sys
1.1 sys.path #打印环境变量,模块存储路劲,只有存在这些目录下才能导入模块;
[‘D:\Python3\python_project\Project_1\Day-05-27‘, ‘D:\Python3\python_project\Project_1‘, ‘D:\Python3\python_project\Project_1\venv\Scripts\python36.zip‘, ‘C:\Users\brace.li\AppData\Local\Programs\Python\Python36-32\DLLs‘, ‘C:\Users\brace.li\AppData\Local\Programs\Python\Python36-32\lib‘, ‘C:\Users\brace.li\AppData\Local\Programs\Python\Python36-32‘, ‘D:\Python3\python_project\Project_1\venv‘, ‘D:\Python3\python_project\Project_1\venv\lib\site-packages‘, ‘D:\Python3\python_project\Project_1\venv\lib\site-packages\setuptools-39.0.1-py3.6.egg‘, ‘D:\Python3\python_project\Project_1\venv\lib\site-packages\pip-9.0.3-py3.6.egg‘, ‘C:\Program Files\JetBrains\PyCharm 2018.1.3\helpers\pycharm_matplotlib_backend‘]
D:\Python3\python_project\Project_1\venv\lib\site-packages‘ #第三方库存放的位置
C:\Users\brace.li\AppData\Local\Programs\Python\Python36-32\lib #标准库存放的位置
1.2 sys.argv #读取脚本的相对路径
print(sys.argv)
python sys_test.py
输出:
[‘sys_test.py‘]
print(sys.argv)
print(sys.argv[2])
python sys_test.py 1 2 3 4
输出:
[‘sys_test.py‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘]
2
2>. os模块:
2.1 os.system("df -h") #执行系统相关的命令;
cmd_res = os.system("df -h") #执行命令,不保存结果;
cmd_res = os.popen("df -h").read() #执行命令,保存结果
2.2 os.mkdir("new_dir") #创建目录new_dir
3>. 自定义模块:
编写好一个脚本后,存放在当前目录,就可以直接用
import 脚本名
来导入自定义模块;
C:\Users\brace.li\AppData\Local\Programs\Python\Python36-32\lib #标准库存放的位置
1.2 sys.argv #读取脚本的相对路径
print(sys.argv)
python sys_test.py
输出:
[‘sys_test.py‘]
print(sys.argv)
print(sys.argv[2])
python sys_test.py 1 2 3 4
输出:
[‘sys_test.py‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘]
2
2>. os模块:
2.1 os.system("df -h") #执行系统相关的命令;
cmd_res = os.system("df -h") #执行命令,不保存结果;
cmd_res = os.popen("df -h").read() #执行命令,保存结果
2.2 os.mkdir("new_dir") #创建目录new_dir
3>. 自定义模块:
编写好一个脚本后,存放在当前目录,就可以直接用
import 脚本名
来导入自定义模块;
2. .pyc是什么?
pyc文件就是 py程序编译后得到的字节码文件 (py->pyc),
python为了提高运行效率也会进行编译,有时候编译出pyc文件后,删除py文件也不会出错
pyc文件就是 py程序编译后得到的字节码文件 (py->pyc),
python为了提高运行效率也会进行编译,有时候编译出pyc文件后,删除py文件也不会出错
pyc文件的产生,
假如有一个逻辑文件abcd.py,里面有很多函数A,B,C,D,
这个时候,如果你有一个test脚本去导入了abcd.py,只要你运行test脚本,
在adcd.py目录下就会生成一个abcd.pyc文件,而不管你是否需要调用A,B,C,D函数
3. 数字类型
3.1 数字:
1> 整数int:
在32位机器上,整数的位数为32位;
在64位机器上,整数的位数为64位;
python3.x中没有长整型。统统都是int
2> float浮点数:小数,用来出来实数,即带有小数点的数字;
4. 布尔值:
真或假
1或0
>>> a = 0
>>> if a:print(‘a‘)
...
>>> a = 1
>>> if a:print(‘a‘)
...
a
5. 三元运算:
>>> a,b,c = 1,2,3
>>> d = a if a>b else c
>>> d
3
>>> d = a if a<b else c
>>> d
1
6. bytes类型: 二进制,其和字符串完全不一样
python3.x: 有严格的区分bytes与string,其不能相互操作;
string ==encode编码==> bytes
bytes ==decode解码==> string
网络传输数据,必须以二进制的方式进行传输。
假如有一个逻辑文件abcd.py,里面有很多函数A,B,C,D,
这个时候,如果你有一个test脚本去导入了abcd.py,只要你运行test脚本,
在adcd.py目录下就会生成一个abcd.pyc文件,而不管你是否需要调用A,B,C,D函数
3. 数字类型
3.1 数字:
1> 整数int:
在32位机器上,整数的位数为32位;
在64位机器上,整数的位数为64位;
python3.x中没有长整型。统统都是int
2> float浮点数:小数,用来出来实数,即带有小数点的数字;
4. 布尔值:
真或假
1或0
>>> a = 0
>>> if a:print(‘a‘)
...
>>> a = 1
>>> if a:print(‘a‘)
...
a
5. 三元运算:
>>> a,b,c = 1,2,3
>>> d = a if a>b else c
>>> d
3
>>> d = a if a<b else c
>>> d
1
6. bytes类型: 二进制,其和字符串完全不一样
python3.x: 有严格的区分bytes与string,其不能相互操作;
string ==encode编码==> bytes
bytes ==decode解码==> string
网络传输数据,必须以二进制的方式进行传输。
>>> "hello".encode("utf-8") #utf-8缺省,python3默认是utf-8
b‘hello‘
>>> b‘hello‘.decode("utf-8")
‘hello‘
>>> msg = "我爱北京"
>>> print(msg.encode("utf-8"))
b‘xe6x88x91xe7x88xb1xe5x8cx97xe4xbaxac‘
>>> b‘xe6x88x91xe7x88xb1xe5x8cx97xe4xbaxac‘.decode("utf-8")
‘我爱北京‘
>>>
b‘hello‘
>>> b‘hello‘.decode("utf-8")
‘hello‘
>>> msg = "我爱北京"
>>> print(msg.encode("utf-8"))
b‘xe6x88x91xe7x88xb1xe5x8cx97xe4xbaxac‘
>>> b‘xe6x88x91xe7x88xb1xe5x8cx97xe4xbaxac‘.decode("utf-8")
‘我爱北京‘
>>>
以上是关于模块及其数据类型小结的主要内容,如果未能解决你的问题,请参考以下文章