[第二节]python字符编码,初识模块,字节码及交互式输入
2017-02-07 10:54
399 查看
一, python字符编码:
python解释器在加载".py"文件中的代码时,会对内容进行编码(默认ASCII).
1. ASCII(American Standard Code for Information
Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用8位来表示(一个字节),即2**8 = 256,所以ASCII码最多只能表示 256 个符号。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以就需要新出一种可以代表所有字符和符号的编码,即Unicode.
2. Unicode字符编码:
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode
是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定所有的字符和符号最少由16位来表示(至少2个字节),即2**16 = 65536.
Unicode的出现解决了传统的字符编码方案的局限,但是却引出了另一个问题,即浪费空间;于是就又有了一种字符编码UTF-8.
3. UTF-8字符编码
UTF-8是对Unicode编码的压缩和优化,它不再使用最少2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存等等.(一个字节用8位表示)。
注:
python2.7版本默认使用的是unicode编码.
python3.x版本默认使用utf-8编码,不用再在代码前加"_*_ coding:utf-8 _*_ .
二, Python代码书写格式:
第一行:解释器.
第二行:编码.
三,初识模块和字节码:
Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:
Python内部提供的模块
业内开源的模块
程序员自己开发的模块
示例:使用程序员自己开发的模块
执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。
注:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。
例:
五,交互式输入
raw_input()与input(): 用于和用户交互,等待用户输入内容;
注:raw_input()函数和input()函数在python2.X/3.x中的区别:
2.x版本:
raw_input(): 输入的str或int都会被转化为str type;
input(): 只能识别到int type,对于str type会报错;
3.x版本:
raw_input(): input和raw_input 整合了,没有了raw_input().
input(): 输入的str或int都会被转化为str type;如果要得到int类型,需用int转换.
注:3.x版本中的input()函数,交互式输入的内容必须是int类型,即数字,它才能转换为相应的int类型;如果交互式输入的内容是str类型,则转换为int type时会报错.
示例:
1)代码内容:
示例:
第二节完成!
python解释器在加载".py"文件中的代码时,会对内容进行编码(默认ASCII).
1. ASCII(American Standard Code for Information
Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用8位来表示(一个字节),即2**8 = 256,所以ASCII码最多只能表示 256 个符号。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以就需要新出一种可以代表所有字符和符号的编码,即Unicode.
2. Unicode字符编码:
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode
是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定所有的字符和符号最少由16位来表示(至少2个字节),即2**16 = 65536.
Unicode的出现解决了传统的字符编码方案的局限,但是却引出了另一个问题,即浪费空间;于是就又有了一种字符编码UTF-8.
3. UTF-8字符编码
UTF-8是对Unicode编码的压缩和优化,它不再使用最少2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存等等.(一个字节用8位表示)。
注:
python2.7版本默认使用的是unicode编码.
python3.x版本默认使用utf-8编码,不用再在代码前加"_*_ coding:utf-8 _*_ .
二, Python代码书写格式:
第一行:解释器.
第二行:编码.
三,初识模块和字节码:
Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:
Python内部提供的模块
业内开源的模块
程序员自己开发的模块
示例:使用程序员自己开发的模块
root@Python:/python/python3# ls master.py slave.py root@Python:/python/python3# cat master.py #!/usr/bin/env python # _*_ coding:utf-8 _*_ import slave print("master") root@Python:/python/python3# cat slave.py #!/usr/bin/env python # _*_ coding:utf-8 _*_ print("slave") root@Python:/python/python3# python slave.py slave root@Python:/python/python3# python master.py slave master root@Python:/python/python3# //模块导入成功.四,字节码 - pyc文件
执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。
注:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。
例:
root@Python:/python/python3# ls -a . .. master.py slave.py slave.pyc注:.py文件和.pyc文件可以借助额外的工具反解.
五,交互式输入
raw_input()与input(): 用于和用户交互,等待用户输入内容;
注:raw_input()函数和input()函数在python2.X/3.x中的区别:
2.x版本:
raw_input(): 输入的str或int都会被转化为str type;
input(): 只能识别到int type,对于str type会报错;
3.x版本:
raw_input(): input和raw_input 整合了,没有了raw_input().
input(): 输入的str或int都会被转化为str type;如果要得到int类型,需用int转换.
注:3.x版本中的input()函数,交互式输入的内容必须是int类型,即数字,它才能转换为相应的int类型;如果交互式输入的内容是str类型,则转换为int type时会报错.
示例:
1)代码内容:
root@Python:/python/python3# vim 01.py #!/usr/bin/env python # _*_ coding:utf-8 _*_ name = input("Please input name:") print(name) ss = type(name) print(ss)执行结果:
root@Python:/python/python3# python 01.py Please input name:yangbin //输入内容. yangbin <class 'str'> //执行结果. root@Python:/python/python3# python 01.py Please input name:1212 //输入内容. 1212 <class 'str'> //执行结果. root@Python:/python/python3#2)代码内容:
root@Python:/python/python3# vim 01.py #!/usr/bin/env python # _*_ coding:utf-8 _*_ name = int(input("Please input name:")) print(name) ss = type(name)执行结果:
root@Python:/python/python3# python 01.py Please input name:yangbin //输入str类型后转换报错. Traceback (most recent call last): File "01.py", line 4, in <module> name = int(input("Please input name:")) ValueError: invalid literal for int() with base 10: 'yangbin' root@Python:/python/python3# python 01.py Please input name:1212 //输入int类型后转换成功. 1212 <class 'int'> root@Python:/python/python3#在交互式模式下,当输入密码时,如果想要密码不可见,需要利用getpass模块中的getpass方法。
示例:
#!/usr/bin/env python # _*_ coding:utf-8 _*_ import getpass pwd = getpass.getpass("请输入密码:") print(pwd)执行结果:
root@Python:/python/python3# python 02.py 请输入密码: //此处输入密码不可见. 123456 //print显示出了密码. root@Python:/python/python3#
第二节完成!
相关文章推荐
- python_基础总结1 python由来 字符编码 注释 pyc文件 python变量 导入模块 获取用户输入 流程控制if while
- Python基础:数据类型、变量定义、输入/输出、逻辑、函数/模块(导入)/类、异常处理
- [python] 如何在python交互式会话中保持输入命令的记录
- 循序渐进Python3(五) -- 初识模块
- python常用模块初识
- [Python模块学习]使用getpass模块无回显输入
- mysql-python模块的内存泄露和中文字符编码问题
- python getpass模块:隐藏不显示输入的密码
- Python使用dis模块把Python反编译为字节码的用法详解
- Python使用dis模块把Python反编译为字节码的用法详解
- 题目:初识python,第一个python程序,交互式环境下的输出以及文本编辑器介绍
- 初识python模块
- Python中的模块导入和读取键盘输入的方法
- Python的Crypto模块使用:自动输入Shell中的密码
- 如何在交互式python下重复最近输入
- DAY2 Python 标准库 -> Getpass 模块 -> 命令行下输入密码的方法.
- python 输入参数解包,模块导入,接收IO输入参数
- Python的Crypto模块使用:自动输入Shell中的密码
- python file模块 替换输入内容脚本
- python入门基础之用户输入与模块初认识