一、编码方式
(资料图)
计算机只认识0和1二进制串。
英文字符和二进制串的对应关系,构建为ASCII码,共128个字符,使用一个字节的二进制串。
不同国家有不同的字符,并且字符可能多达数万(汉字多达10万)。一个字节最多表达256字符,为表达不同国家的字符,需要使用多个字节。
为了将所有字符都能唯一表达,构建Unicode(一种所有字符的编码)。
Unicode约定了所有字符和二进制串的对应关系。
但不同的字符所需要的二进制串长度是不一样的,如果按照最长二进制串存储,则会浪费存储空间。
UTF-8是Unicode的一种实现方式,采用变长的编码方式,可以使用1~4个字节表示一个符号。
规则如下:
(1)可使用1个字节二进制串表达的字符:第1位为0,后7位是这个字符的Unicode编码。
(2)使用n个字节二进制串表达的字符:第1个字节的前n位都设为1,第n +
1位设为0,后面字节的前2位一律设为10。剩余的二进制位为Unicode编码。
Python2默认的编码方式是ASCII码。
ASCII码不支持中文,如需写中文注释,则要在文件的开头加入# -*coding: UTF-8 -*或者# coding=utf-8。
Python3中Python源码文件都将以UTF-8编码作为默认编码,所有的字符串都是Unicode字符串。
二、变量
Python数据类型的分类:
不可变类型是指一旦创建后,其值不能被修改。如重新赋值或修改值,实质上是创建了一个新的对象并将变量指向该新对象,原有的对象并没有改变。
可变类型是指可以修改其值的对象。如修改元素、添加或删除元素,会直接操作原有对象的内部数据。
底层实现原理:对于不可变类型,Python会为每个对象分配内存,并将对象的值存储在该内存中。当我们进行不可变类型的操作时,Python会创建一个新的对象并将其值存储在新的内存中,然后将变量指向新的对象。
对于可变类型,Python会为每个对象分配内存,并将对象的引用存储在内存中。当我们进行可变类型的操作时,Python会直接修改对象内部的数据,而不会创建新的对象。
理解变量类型的不可变和可变特性,有助于我们更好地理解Python中的数据处理和内存管理。
三、控制语句
Python提供for、while与else的组合能力,用来识别循环是否正常执行完毕,有无跳出(break)现象。
for i in [1, 2]: passelse: print("for循环结束,无跳出现象")
四、函数
函数的参数分为4种类型:位置参数、关键字参数、默认参数、不定长参数。
(1)位置参数:调用函数时,传入实参的数量和位置都必须和函数的定义保持一致。
(2)关键字参数:调用函数时,使用形式参数的名字来指定输入的参数值。
### 函数定义 def getAgeInfo(name, age): "打印任何传入的字符串" print("Name: ", name) print("Age ", age)### 函数调用 getAgeInfo(age=50, "xiaoxiao") ### age = 50,为关键字参数
注:关键字参数必须在位置参数之后。
(3)默认参数:定义函数时,给形式参数指定一个默认值。
### 函数定义 def getAgeInfo(name, age=30): "打印任何传入的字符串" print("Name: ", name) print("Age ", age)
(4)不定长参数:函数定义时,使用 *parameter 表示任意个非关键字参数,使用**parameter表示任意个关键字参数。
### 函数定义,参数以元组的形式访问def getStuName(*stuname): print("n学生名单为:") for sn in stuname: print(sn) ### 函数定义,参数以字典的形式访问def getStuName(**stuname): for snkey, snvalue in stuname.items(): print(snkey + " " + snvalue)
标签: