Python学习笔记1(变量,字符编码)

跟着老男孩教育Alex的视频学习Python,写博客记录自己的学习过程,记录所讲授的知识点。

此篇微博直接从学习一个程序的仪式感“Hello word”开始写起,例如Python的介绍、发展史、Python2和3的区别、安装、优缺点等,将不会在此记录。

这是我第一次编写博客,不管是内容总结还是外观形式都肯定会有所欠缺。不过这博客主要是给自己记录学习过程的,如果想自学的话,在此推荐给你Alex金角大王和Eric银角大王的微博。

金角大王传送门:http://www.cnblogs.com/alex3714

银角大王传送门:http://www.cnblogs.com/wupeiqi

1.Hello word程序

在PyCharm里创建一个hello.py的文件,并且写下如下的代码:

1 print("Hello,world!")

hello word

然后执行,这时候我的Python的程序就有了生命,就开启了新的冒险之旅。

2.变量

变量定义的规则

  • 变量名只能是 字母、数字或下划线的任意组合
  • 变量名的第一个字符不能是数字
  • 以下关键字不能声明为变量名
    [‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘exec‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]

变量赋值

Python变量赋值不需要声明类型。

等号(=)左边为变量名,右边是存储在变量中的值,例如:

1 school = "zgcm"

这时就声明了一个变量,变量名为school,且变量school的值为zgcm。使用school时,school将会指向zgcm的内存地址,找到zgcm这个值。因此,声明变量之后再使用school时,其实就是在使用zgcm(先不考虑作用域的存在)。

多个变量赋值

1 a = b = c = 1
2 x , y , z = 1 , 1.1 , ‘zifuchuan‘

第一行代码,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。

第二行代码,创建整型对象1赋值给变量名x,浮点型对象1.1赋值给变量名y,字符串对象赋值给变量名z。

其他类型的赋值

1 str = "this is string 1"                         #字符串赋值
2 list = [‘this‘, ‘is‘, ‘list‘, 2]                 #列表赋值
3 tuple = (‘this‘, ‘is‘, ‘tuple‘, 3)               #元组赋值
4 dict = {1:‘this‘, 2:‘is‘, 3:‘dictionary‘, 4:4}   #字典赋值

赋值内容替换

1 name1 =  "zhangyan"
2 name2 = name1
3 print(name1,name2)
4 name1 = "zy"
5 print(name1,name2)

上述代码输出的结果为:

zhangyan zhangyan
zy             zhangyan

1.zhangyan赋值给nama1,name1存储的是zhangyan的内存地址。

2.name1又赋值给了name2,其实是把zhangyan的内存地址给了name2(相当于name1给name2指了一下路,让name2找到了zhangyan)。

3.因此第三行print输出的时候name1和name2都为zhangyan。

4.再将zy赋值给name1的时候,name1里存储的就变成了zy的内存地址,而不再指向zhangyan。此时name2无变化,指向的还是zhangyan的内存地址。

5.因此第五行输出的name1为zy,name2为zhangyan。

3.字符编码

python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。

关于中文

为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。

GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。

GB2312 支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。2000年的 GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。

从ASCII、GB2312、GBK 到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。

有的中文Windows的缺省内码还是GBK,可以通过GB18030升级包升级到GB18030。不过GB18030相对GBK增加的字符,普通人是很难用到的,通常我们还是用GBK指代中文Windows内码。

显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536。
注:此处说的的是最少2个字节,可能更多

UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

前面我们已经学会了如何用 Python 输出 "Hello, world!",英文没有问题,但是如果你输出中文字符"你好,世界"就有可能会碰到中文编码问题。

Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。

解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 就行了。

1 #!/usr/bin/python
2 # -*- coding: UTF-8 -*-
3
4 print("你好,世界");

注意:Python3.X 源码文件默认使用utf-8编码,所以可以正常解析中文,无需指定 UTF-8 编码。

注意:如果你使用编辑器,同时需要设置 py 文件存储的格式为 UTF-8,否则会出现类似以下错误信息:

SyntaxError: (unicode error) ‘utf-8’ codec can’t decode byte 0xc4 in position 0:
invalid continuation byte

Pycharm 设置步骤:

但是,如果你文件已经指定了编码 # -*- coding: UTF-8 -*-,这里就不能修改了:

时间: 2024-07-28 15:35:16

Python学习笔记1(变量,字符编码)的相关文章

python学习笔记8-9(字符编码与二进制)

字符编码 python解释器在加载.py文件中的代码时,会对内容进行编码(默认ASCII) 二进制 举例:古时候烽火台,点火和不点火只有两种状态,传递信息太少. 约定点火数1,代表1-100 点火数2,代表101-1000 点火数3,代表1001-5000 点火数4,代表5001-1000 虽然有进步,但还不够精确 如果引入二进制,可以精确表示任意数 字符编码 二进制和字母的转换 ASCII(American Standard Code for Information Interchange,美

python学习第四天 --字符编码 与格式化

字符编码 与格式化 第三天已经知道了字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节.比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295. 由于计算机是美国人发明的,因此,

Python学习笔记1_变量及数据类型

1.1  变量 变量名只能包含字母.数字和下划线:变量名可以字母或下划线打头,但不能以数字打头 不要将Python关键字和函数名用作变量名 慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0 # 变量名称message message = "Hello Python world!" print(message) message = "Hello Python Crash Course world!" print(message) 1.2    字符串  

Python学习,第二课 - 字符编码

关于字符编码 python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill) ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号. 关于中文 为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体

Python学习(一) 字符编码

字符编码 字符编码(英语:Character encoding)也称字集码,是把字符集中的字符编码为指定集合中某一对象(例如:比特模式.自然数序列.8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递.常见的例子包括将拉丁字母表编码成摩斯电码和ASCII.其中,ASCII将字母.数字和其它符号编号,并用7比特的二进制来表示这个整数.通常会额外使用一个扩充的比特,以便于以1个字节的方式存储. 在计算机技术发展的早期,如ASCII(1963年)和EBCDIC(1964年)这样的字符集逐渐成

python学习第十八天计算机字符编码

人类语言和计算机语言二进制怎么沟通,最开始字符编码为ascii码对照表 包括数据和字母,没有汉字,中国自己搞了一套自己的编码 gb2312编码后来发展GBK编码,日本,韩国都,甚至台湾也搞自己的编码,最后国际统一一个编码为unicode 编码 但是unicode编码统一占两个字符,英文占一个字符,中文占两个字符,泰文占3个字符,后来发展 演变 统一 UTF格式 utf-8,这种可长可短的,比较适合所有国家的编码方式. 1,二进制 0,1 二进制 0,1,2,3,4,5,6,7 八进制 0.1.2

python学习笔记十七:base64编码

Python中进行Base64编码和解码要用base64模块,代码示例: #-*- coding: utf-8 -*- import base64 str = 'cnblogs' str64 = base64.b64encode(str) print str64 #Y25ibG9ncw== print base64.b64decode(str64) #cnblogs

python学习笔记-2变量

1.pytho中变量的含义:在内存中定义一块区域给值,然后使用变量引用所定义的值,变量可以理解为标签,当需要调用哪个值的时候要使用标签来调用,变量可以重新赋值,重新赋值后,现在的值将取代之前的值,一个值也可以有多个变量,即多个变量都指向同一个值的位置,即相同的值,可以使用id()函数查看变量所引用的值在内存中的位置 2.赋值方式:比如a=1,表示将1这个值赋值给变量a 3.变量名的规范:不能以数字开头,或以关键字为变量名,可以字母开头,或_等特殊字符开头,为变量起名是应遵从易于理解,这样写出来的

python学习笔记第四节(字符编码+文本操作+函数)

python中不存在常量这个意义只能用大写命名来说明这个赋值是个常量,实际均为变量 字符编码 内存中是unicode硬盘中是utf-8中间需要转换 python只有执行的时候才有字符编码的概念python2默认ascii码python3默认unicode 文件操作 写操作,w 没有就新建有则覆盖,a是追加 name 查看文件名encoding 查看字符编码 查看是否可读查看是否可写 true false 以文件字符来显示 seek 移动光标位置,以文件起始来读,字节,以0为单位utf-8三个字符

python学习笔记2—python文件类型、变量、数值、字符串、元组、列表、字典

python学习笔记2--python文件类型.变量.数值.字符串.元组.列表.字典 一.Python文件类型 1.源代码 python源代码文件以.py为扩展名,由pyton程序解释,不需要编译 [[email protected] day01]# vim 1.py #!/usr/bin/python        print 'hello world!' [[email protected] day01]# python 1.py hello world! 2.字节代码 Python源码文件