[第二节]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


相关文章
|
6月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
785 7
|
6月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
515 0
|
6月前
|
JSON 算法 API
Python中的json模块:从基础到进阶的实用指南
本文深入解析Python内置json模块的使用,涵盖序列化与反序列化核心函数、参数配置、中文处理、自定义对象转换及异常处理,并介绍性能优化与第三方库扩展,助你高效实现JSON数据交互。(238字)
571 4
|
6月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
289 4
|
7月前
|
安全 大数据 程序员
Python operator模块的methodcaller:一行代码搞定对象方法调用的黑科技
`operator.methodcaller`是Python中处理对象方法调用的高效工具,替代冗长Lambda,提升代码可读性与性能。适用于数据过滤、排序、转换等场景,支持参数传递与链式调用,是函数式编程的隐藏利器。
235 4
|
6月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
668 0
|
6月前
|
XML JSON 数据处理
超越JSON:Python结构化数据处理模块全解析
本文深入解析Python中12个核心数据处理模块,涵盖csv、pandas、pickle、shelve、struct、configparser、xml、numpy、array、sqlite3和msgpack,覆盖表格处理、序列化、配置管理、科学计算等六大场景,结合真实案例与决策树,助你高效应对各类数据挑战。(238字)
824 0
|
7月前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
640 0
|
8月前
|
存储 安全 数据处理
Python 内置模块 collections 详解
`collections` 是 Python 内置模块,提供多种高效数据类型,如 `namedtuple`、`deque`、`Counter` 等,帮助开发者优化数据处理流程,提升代码可读性与性能,适用于复杂数据结构管理与高效操作场景。
507 0
|
9月前
|
数据安全/隐私保护 Python
抖音私信脚本app,协议私信群发工具,抖音python私信模块
这个实现包含三个主要模块:抖音私信核心功能类、辅助工具类和主程序入口。核心功能包括登录

推荐镜像

更多
下一篇
开通oss服务