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

嵌入式技术

1372人已加入

描述

一、编码方式

计算机只认识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数据类型的分类:

ASCII码

不可变类型是指一旦创建后,其值不能被修改。如重新赋值或修改值,实质上是创建了一个新的对象并将变量指向该新对象,原有的对象并没有改变。

可变类型是指可以修改其值的对象。如修改元素、添加或删除元素,会直接操作原有对象的内部数据。

底层实现原理:对于不可变类型,Python会为每个对象分配内存,并将对象的值存储在该内存中。当我们进行不可变类型的操作时,Python会创建一个新的对象并将其值存储在新的内存中,然后将变量指向新的对象。

对于可变类型,Python会为每个对象分配内存,并将对象的引用存储在内存中。当我们进行可变类型的操作时,Python会直接修改对象内部的数据,而不会创建新的对象。

理解变量类型的不可变和可变特性,有助于我们更好地理解Python中的数据处理和内存管理。

三、控制语句

Python提供for、while与else的组合能力,用来识别循环是否正常执行完毕,有无跳出(break)现象。

for i in [1, 2]:
    pass
else:
    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)
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分