Python中的基础语法:

一、Python中变量在内存中的存储

1.引用和对象:

对象:当创建数据对象时,在内存中会保存对象的值,这个值就是对象自己;

引用:对象保存在内存空间,外部想要使用对象的值,就需要使用引用来操作对象。内存中会保存对象引用的数量,当某个对象的引用为0时,对象会被回收。

2.可变数据类型和不可变数据类型

a、数据分类:

可变数据对象:列表(list)和字典(dict)

不可变数据对象:整型(int)、浮点型(float)、字符串(string)和元组类型(tuple)

注:此处的可变和不可变,是指内存中的对象(Value)是否可以改变,对于不可变类型的对象,在对对象操作的时候,必须在内存中重新申请一块新的区域,即重新给一个新的地址用于存储;对于可变类型的对象,在对对象操作的时候,并不会重新申请新的地址,而是在该对象的地址后面继续申请即可,即address并不会改变,而是address的区域的大小会变长或变短。

不可变数据类型:对象本身的值不可变,如果改变了变量的值,相当于新建了一个对象,而对于相同值的对象,在内存中只有一个对象。

可变数据类型:允许变量的值进行改变,对于变量给值的过程中,只是改变了变量的值,而不会新建一个对象,所以可变数据类型的意思就是说对一个变量进行操作时,其值是可变的,值的变化并不会引起新建对象,即地址是不会变的,只是地址中的内容变化了或者地址得到了扩充。,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象

3.引用传递和值传递(函数传值)

说明:可变对象为引用传递,不可变对象为值传递

引用传递:传递列表或者字典时,如果改变引用的值,就修改了原始的对象

值传递:当传递不可变对象时,如果改变引用变量的值,只是创建了不同的对象,原始对象并没有改变。

4.深拷贝和浅拷贝

浅拷贝:语法:copy.copy(),浅拷贝是创建了一个和原对象一样的类型,但是其内容是对原对象元素的引用。

深拷贝:语法:copy.deepcopy(),在内存中将所有的数据重新建立一份。

变量的本质:在内存中开辟了一块空间,其中存储了指定类型的数据【实体(对象)存储在堆中,变量(引用)存储在栈空间中

二、基本数据类型

整型(int)、浮点型(float)、字符串(string)、空值(None)、布尔值(True和False)、复数、类、函数等

Python中常量的命名规则使用变量名为全大写为常量

变量的命名规则:

1.变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为message_1,但不能将其命名为1_message。

2.变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greeting message会引发错误。

3.不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print

4. 变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好。

5.慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。

内置函数表;

内置函数

abs()

dict()

help()

min()

setattr()

all()

dir()

hex()

next()

slice()

any()

divmod()

id()

object()

sorted()

ascii()

enumerate()

input()

oct()

staticmethod()

bin()

eval()

int()

open()

str()

bool()

exec()

isinstance()

ord()

sum()

bytearray()

filter()

issubclass()

pow()

super()

bytes()

float()

iter()

print()

tuple()

callable()

format()

len()

property()

type()

chr()

frozenset()

list()

range()

vars()

classmethod()

getattr()

locals()

repr()

zip()

compile()

globals()

map()

reversed()

import()

complex()

hasattr()

max()

round()

delattr()

hash()

memoryview()

set()