Python学习笔记:编码、变量、控制语句与函数

2023-08-22 16:19:08 来源:码农与软件时代

一、编码方式


(资料图)

计算机只认识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)

标签:

上一篇:如何共享文件给虚拟机中的Linux系统
下一篇:最后一页