yuanrui / blog

Some notes.
http://yuanrui.github.io
3 stars 0 forks source link

《Python核心编程》学习笔记 #27

Open yuanrui opened 4 years ago

yuanrui commented 4 years ago

Python核心编程

第二版学习笔记 YuanRui 2020.02.04

Python基础

语句和语法

变量赋值

等号是主要的赋值操作符。 增量操作符和C语言类似。 Python使用下划线作为变量前缀和后缀时为特殊变量。 Python支持多元赋值,示例如下:

x, y, z = 1, 2, 'Hello World!' 

练习

Q:为什么Python中不需要变量名和变量类型声明? A:Python中无需显式声明类型,变量在第一次赋值时确定类型。

标识符

标识符定义规则:第一个字符必须是字母或下划线,剩下的字符可以说字符、数字和下划线。标识符大小写敏感。

Python对象

基本数据类型

所有类型对象的类型都是type,这个概念有点类似于C#中所有类型都是由object派生出的一样。 Python中的特殊类型是None, 表示Null对象或NoneType. None类型类似于C#中的void, 值类似于null. None的布尔值总是为False.

操作符

对象值可以使用:>、<、==、>=、<=、!=等操作符进行比较。 对象引用方式根据赋值方式,有所不同。

#示例
#a1和a1引用的相同对象
a1 = a2 = 123

#b1和b2引用的不同对象
b1=123
b2=123 

使用is、is not可以比较是否引用的同一对象。

#结果:True
a1 is a1 

#结果:False
b1 is b2 

布尔类型操作符:not、and、or.

内置函数

函数 功能
cmp(obj1,obj2) 比较obj1和obj2,根据比较结果返回整型值
repr(obj) 返回一个对象的字符表示,类似C#中ToString方法
str(obj) 返回可读性好的对象字符串,类似C#中ToString带格式的方法
type(obj) 获取对象的类型,返回相应的type对象

类型分类

数据类型 存储类型 更新模型 访问模型
数字 标量 不可更改 直接访问
字符串 标量 不可更改 顺序访问
列表 容器 可更改 顺序访问
元组 容器 不可更改 顺序访问
字典 容器 可更改 映射访问

标量:一个保存单个字面对象的类型,类似于C#中的值类型和字符串。 容器:可存储多个对象(对象可以有不同的类型)的类型,类似C#集合。 可变类型:允许值被更新,每次修改后新值替换旧值。类似C#引用类型。 不可变类型:不允许值被更改,每次修改后使用新的值替代;旧值被丢弃,等待垃圾回收器处理回收对象。类似C#值类型。 直接访问:对数值直接进行访问,类似C#中栈。 顺序访问:可对容器按索引进行访问元素,类似C#中索引。 映射访问:元素无序存放,通过唯一Key访问,类似C#中哈希。