[第二节]python字符编码,初识模块,字节码及交互式输入-阿里云开发者社区

开发者社区> 科技小能手> 正文

[第二节]python字符编码,初识模块,字节码及交互式输入

简介:
+关注继续查看

一, 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内部提供的模块

  • 业内开源的模块

  • 程序员自己开发的模块

示例:使用程序员自己开发的模块 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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解释器编译之后产生的字节码。

注:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。 

例:

1
2
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)代码内容: 

1
2
3
4
5
6
7
8
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)

执行结果: 

1
2
3
4
5
6
7
8
9
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)代码内容: 

1
2
3
4
5
6
7
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)

执行结果:

1
2
3
4
5
6
7
8
9
10
11
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方法。

示例:

1
2
3
4
5
#!/usr/bin/env python  
# _*_ coding:utf-8 _*_ 
import getpass  
pwd = getpass.getpass("请输入密码:"
print(pwd)

执行结果:

1
2
3
4
root@Python:/python/python3# python 02.py
请输入密码:   //此处输入密码不可见.
123456  //print显示出了密码.
root@Python:/python/python3#


第二节完成!

本文转自 羽丰1995 51CTO博客,原文链接:http://blog.51cto.com/13683137989/1895528


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
20个编写现代 CSS 代码的建议
明白何谓Margin Collapse 不同于其他很多属性,盒模型中垂直方向上的Margin会在相遇时发生崩塌,也就是说当某个元素的底部Margin与另一个元素的顶部Margin相邻时,只有二者中的较大值会被保留下来,可以从下面这个简单的例子来学习: ? .square {    width: 80px;    height: 80px; }.red {    
1056 0
riot.js教程【三】访问DOM元素、使用jquery、mount输入参数、riotjs标签的生命周期
前文回顾riot.js教程【二】组件撰写准则、预处理器、标签样式和装配方法;riot.js教程【一】简介; 访问DOM元素 你可以通过this.refs对象访问dom元素 而且还有大量的属性简写方式可以使用 比如:if="{.
1115 0
创建交互式shell脚本对话框
创建一个消息框 一个消息框中显示一个确认按钮继续任意的文本消息。 语法: whiptail --title "<message box title>" --msgbox "<text to show>" <height> <width> 实例: #!/bin/bash whiptail --title "Test Message Box" --msgbox "Create a message box with whiptail. Choose Ok to continue." 10 60 创建一个yes/no对话框 用户输入yes或no的对话框。
1022 0
python爬虫URL编码和GETPOST请求 | python爬虫实战之三
本节介绍了urllib.parse模块对url的编解码,以及最常用的HTTP交互数据的方法GET、POST方法的应用。
570 0
23706
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载