第二章 Python入门

第一章计算机基础的部分,以后整理完后更新。

2.1 环境安装

  • 学习python需要的环境(mac/windows):

    • 解释器:py2\py3
    • 开发工具:pycharm

2.2 编码

2.2.1 编码基础

  • 常见编码:

    • ascii (英语)
    • unicode (内存中使用的编码,可以支持世界上任何语言符号。又称:万国码。由联合国组织定义)
      • cse2 (以前常用的编码形式)
      • cse4 (常用的编码形式)
    • gbk (中文编码的一种,现在广泛被使用)
    • gb2312 (中文编码的一种,比较旧的编码)
    • utf
      • utf-8 (unicode码用于网络传输或保存硬盘时候使用的编码,最常用)
      • utf-16 (占用16bit的utf)
      • utf-32 (占用32bit的utf)
    • shift-jis (日语编码)

中文字符1个字符在utf-8中占3字节,在gbk中占2字节

2.2.2 Python编码相关

  • Python解释器的默认编码:

    • py2:ascii
    • py3:utf-8

如果想要修改默认编码,可以在代码开始行写入:

# -*- coding:utf-8 -*- #

注意:对于操作文件,要按照:以什么编码写入,就要用什么编码去打开

2.2.3 扩展:Bytes类型

首先我们介绍下硬板存储数据的方式:

硬盘只能存储2进制数据。
所以数据网硬盘上存储,就要以相应的编码转成2进制后存储

把数据网硬盘存储,就要以相应的编码转成2进制后存储:

  • 文字 : utf-8/gbk --> 2进制
  • 图片 : jpg/png --> 2进制
  • 音乐 : mp3/wav --> 2进制
  • 视频 : mp4/avi --> 2进制
1. Bytes类型

Bytes类型:以16进制形式表示,2个16进制数构成一个byte,以 b‘‘来标识的字节串

需要注意的是,open() 文件会默认自动转换为2进制存储(write方法执行时)。所以open命令也是在2进制的基础上进行存储的。

  • bytes类型的作用:

    1. 字符存储到硬盘时,需要转成bytes类型
    2. 网络传输的时候,字符要转成bytes传输
2. 编码: encode
  • .encode(self, encoding, errors)
    用encoding的编码格式转换成bytes类型,并返回
s = '字符串'
s_2 = s.encode('utf-8')  # 把utf-8的字符串编码成utf-8的bytes类型,并返回
print(s_2)  # 输出 b'\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2'
# 这里\xe5 中'x'表示这是16进制,e5是2个16进制数,正好是8bit(1byte),表示一个字节。
# 这里一共9个字节(utf-8的一个中文占3个字节)

s_2 = s1 = s.encode('gbk')  # 把gbk的字符串编码成gbk的bytes类型,并返回
print(s_2)  # 输出 b'\xd7\xd6\xb7\xfb\xb4\xae'
# 这里一共6个字节(utf-8的一个中文占2个字节)

utf-8编码每个中文3字节,gbk编码每个中文2字节。但是utf-8与国际通用

3. 文件操作与bytes类型

文件处理的open() 函数会默认自动转换2进制(bytes型)进行处理(读取时decode,存储时encode)。
所以open()打开文件后不需要进行转换处理。

# f = open(‘windata.txt‘,‘r‘) # r(文本模式),把2进制自动解码成str(unicode) 。所以读取了硬盘文件可以是str

如果我们不想让open()自动转换,那么我们可以以 wb,rb,ab 的模式打开:

b: binary (2进制)

f = open('test.txt','wb')  # 注意:2进制模式不能使用encoding关键字
f.write('字符串'.encode('utf-8'))  # 把utf-8的字符串编码成utf-8的bytes类型,并写入。
# f.write('字符串')  # 这个会报错,str不能直接写入b模式打开的文件,所以会报错。

2.2.4 编码与解码 encode,decode

  1. .encode(self, encoding, errors)
    编码:string(encoding) -> bytes(encoding)
  2. .decode(self, encoding, errors)
    解码:bytes(encoding) -> string(unicode)
s = '编码和解码'
s1 = s.encode('utf-8')  # 把utf-8的字符串编码成utf-8的bytes类型
print(s1)
s2 = s1.decode('utf-8')  # 把utf-8码的bytes类型解码成unicode码的字符串。默认是转utf-8,建议写明。
print(s2)

2.2.5 编码的转换

把文字从一种编码转化成另外一种。一般用(b模式处理)

为什么要进行编码转换?
比如:
windows(中文)创建的文件是默认gbk编码
linux/mac创建的文件是默认utf-8编码
当一个windows文件在linux系统上读取的时候,因为编码不同会显示乱码

那么如何转换呢?

  • 可以通过unicode:

    • 万国码
    • 跟所有的编码之间,有映射关系

例:gbk --> unicode --> utf-8

f = open('windata.txt','rb')  # 以rb模式打开windows的文件,这里假设编码是gbk。
s = f.read()  # 读取bytes数据
s_unicode = s.decode('gbk')  # 把gbk码的s解码成unicode,并且赋值给s_unicode
s_utf8 = s_unicode.encode('utf-8')  # 把unicode编码成utf-8,并且赋值给s_utf8
f.close()

f = open('windata.txt','wb')  # 以wb模式打开文件
f.write(s_utf8)  # 把utf-8码的bytes数据写入文件
f.close()

2.3 变量

为什么要有变量

为某个值创建一个"别名",以后再使用时候通过此"别名"就可以直接调用

待补完

原文地址:https://www.cnblogs.com/py-xiaoqiang/p/11030154.html

时间: 2024-08-09 04:47:41

第二章 Python入门的相关文章

第二章Python入门

第二章 Python入门 2.1.简介 Python是著名的"龟叔"(Guido van Rossum)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言 Python的哲学就是简单优雅,尽量写容易看明白的代码,尽量写少的代码.为我们提供了非常完善的基础代码库,覆盖了网络.文件.GUI.数据库.文本等大量内容, 2.1.1.Python适合开发哪些类型的应用呢? 云计算 机器学习 科学运算 自动化运维 自动化测试 爬虫 数据分析 GUI图形化 Web开发等 2.1.2.P

第二章 算法入门 合并排序

在第二章中难的算法不多,接下来我会把稍微复杂一点的算法整理一下 #include <iostream> using namespace std; void mergeSort(int *A,int left,int mid,int right) { int *L=new int[mid-left+1]; int *R=new int[right-mid+1]; int i,j; for(i=0;i<mid-left+1;i++) { L[i]=A[left+i]; } for (j=0;

算法导论(Introduction to Algorithms )— 第二章 算法入门 — 2.1 插入排序

一.插入排序:INSERTION-SORT 1.适用范围: which is an efficient algorithm for sorting a small number of elements. 对于少量元素的排序,插入排序是一种高效的算法. 2.原理: Insertion sort works the way many people sort a hand of playing cards. We start with an empty left hand and the cards

[Head First Python] - 第二章 python of comment

1- 多行注释 ''' ''' 或 """ """ '''this is the standard way to include a multiple-line comment in you code''' """this is the standard way to include a multiple-line comment in you code""" 2- 单行注释 # # t

第一章 Python入门

第1章 编程与编程语言 1.1 什么是编程 从字面上理解,编程就是"编写程序".那么: 谁来编写?-程序员. 怎么编写?-根据需求,使用某种编程语言来编写. 什么是程序?-程序是指放在磁盘里的静态数据,可以是代码.文件等. 编程:程序员根据需求,使用某种编程语言来编写出的代码. 程序在未运行之前,就是放在磁盘中的静态数据.普通文件,只有在程序运行的时候,程序里面的字符内容对应编程语言的语法,才能让计算机理解并去工作执行,这样才有意义. 1.2 什么是编程语言 编程语言:计算机能够读懂理

Python入门+进阶 第1章 Python入门导学(无论何时,只要开始就不晚)

1. Python入门导学 1.1 Python概念 Python(英国发音:/?pa?θ?n/ 美国发音:/?pa?θɑ?n/) 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构. Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节.类似于PHP和Perl语言. Python 是交互式语言: 这意味着,您可以在一个Python提示符

《Python数据科学手册》第二章 Numpy入门2.1—2.3

 2.1 理解Python中的数据类型 Python的用户被其易用性所吸引,其中一个易用之处就在于动态输入,即在Python中,类型是动态推断的.这意味着可以将任何类型的数据指定给任何变量.但是这种类型灵活性也指出了一个事实: Python 变量不仅是它们的值,还包括了关于值的类型的一些额外信息 . C语言整型本质上是对应某个内存位置的标签,里面存储的字节会编码成整型.而Python的整型其实是一个指针,只向包含这个Python对象所有信息的某个内存位置,其中包括可以转换成整型的字节.Pytho

第二章 Python基础知识

第1章 第一个Pyhton程序 Pyhton的两种执行方式:交互式与脚本文件 1.1 交互式 l  交互式模式 直接在Windows或者Linux环境下打开Python解释器执行. 优点:快捷,调试方便. 缺点:不能够保存代码. C:\Users\cc>python3 Python 3.6.2 (v3.6.2:5fd33b5, Jul  8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", &quo

第二章 python数据类型

第一节    数字和字符串类型 123和“123”一样吗 () [] {} 计算机是用来辅助人们的,在程序设计中也映射了现实世界的分类,以便于抽象的分析. 数字 字符串 列表 元组 字典 我们通过数据类型去查看一些简单的数据类型,python会自动识别数据的类型 >>> num1=123 >>> type(123) <type 'int'> >>> type(num1) <type 'int'> >>> num