python基础

引用

  在Python中,变量也成为:对象的引用。因为,变量存储的就是对象的地址。变量通过地址引用了“对象”。

  变量位于:栈内存

  对象位于:堆内存 

 

  

  • Python是动态类型语言

    变量不需要显式声明类型。根据变量引用的对象,Python解释器自动确定数据类型。

  • Python是强类型语言

    每个对象都有数据类型,只支持该类型支持的操作。

 

Python标识符命名规则

类型 规则 例子
模块和包名 全小写字母,尽量简单。多个单词之间用下划线 math,os
函数名 全小写字母,多个单词之间用下划线隔开 phone,my_name
类名 首字母大写,采用驼峰原则。多个单词时,每个单词第一个字母大写,其余部分小写 Myphone,Phone
常量名 全大写字母,多个单词使用下划线隔开 MAX_SPEED、SPEED

 

删除变量和垃圾回收机制

  可以通过del语句删除不再使用的变量

  

  如果对象没有变量引用,就会被垃圾回收器回收,清空内存空间。

 

链式赋值

  链式赋值用于同一个对象赋值多个变量。

  x=y=123 相当于  x=123; y=123

系列解包赋值

  系列数据赋值给对应相同个数的变量(个数必须保持一致)

  a, b, c = 4, 5, 6  相当于 a=4, b=5, c=6

  【操作】使用系列解包赋值实现变量互换

  a, b = 1, 2

  a, b = b, a

常量

  Python不支持常量,即没有语法规则限制改变一个常量的值,我们只能约定常量的领命规则,以及在程序的逻辑上不对常量的值作出修改。

  MAX_SPEED = 120

  MAX_SPEED = 140    #实际是可以修改的,只能逻辑上不做修改。

最基本内置数据类型介绍

  每个对象都有类型,Python中最基本的内置数据类型:

  1. 整形

  整数,10, 80

  2. 浮点型

  小数, 3.14或者科学计数法314e-2

  3. 布尔型

  表示真假,仅包含: True  False

  4. 字符串型

  由字符组成的序列,“abc”, "程序员"

数字

  Python支持整数和浮点数,我们可以对数字做如下运算:

  + - * /(浮点数除法)   //(整数除法)  %(模,取余)   **(幂)

  使用divmod()函数同时得到商和余数:

  divmod(13, 3) 得到的结果是(4, 1)     divmod()返回的是一个元祖。

使用int()实现类型的转换:

  1. 浮点数直接舍去小数部分。如int(9.9) 结果是:9

  2. 布尔值True转为1, False转为0。如: int(True)结果是1

  3. 字符串符合整数格式(浮点数格式不行)则直接转成对应整数 int("456"),否则会报错int("456abc")

自动转型:

  整数和浮点数混合运算时,表达式结果自动转型成浮点数。比如:2+8.0的结果是10.0

  Python3中,int可以存储任意大小的整数,long被取消,它可以做超大数的计算,而不会造成整数溢出,这也是Python特别适合科学运算的特点。

浮点数

  浮点数,称为float

  浮点数用科学计算法表,比如 3.14,表示成:314E-2 或者 314e-2

  这些数字在内存中也是按照科学计数法存储。

类型转换和四舍五入

  1. 类似于int(), 我们也可以使用float()将其他类型转化成浮点数。

  2. 整数和浮点数混合运算时,表达式结果自动转型成浮点数

  3. round(value) 可以返回四舍五入的值

    注:但不会改变原有的值,而是产生新的值

增强型赋值运算符

  运算符 +、-、*、/、//、**、% 和 = 结合可以构成“增强型赋值运算符”

  运算符: +=、-=、*=、/=、//=、**=、%=

  注意:“+=” 中间不能加空格

时间的表示

  计算机中时间的表示是从“1970年1月1日 00:00:00”开始,以毫秒(1/1000秒)进行计算,我们也把1970年这个时刻称为“unix时间点”。

  Python中可以通过time.time() 获得当前时刻,返回的值是以秒为单位,带微妙(1/1000毫秒)精度的浮点值。

布尔值

  Python2中没有布尔值,直接使用数字0表示False,数字1表示True。

  Python3中,把True和False定义成了关键字,但他们的本质还是1和0,甚至可以和数字相加

比较运算符

  所有比较运算符(==、!=、>、<)返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。

逻辑运算符

  

运算符 格式 说明
or   逻辑或 x  or  y

x 为 True,则不计算 y,直接返回 True

x 为 False,则返回 y

and  逻辑与 x  and  y

x 为 True,则返回 y 的值

x 为 False,则不计算 y,直接返回 False

not  逻辑非 not  x

x 为 True,返回 False

x 为 False,返回 True

同一运算符

  同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址,即 id。

  

运算符 描述
is is是判断两个标识符是不是引用同一个对象
is not is not 是判断两个标识符是不是引用不同对象

  is 与 ==  区别:

  is 用于判断两个变量引用对象是否为同一个,即比较对象的地址(id)。

  == 用于判断引用变量引用对象的值是否相等(value),默认调用对象的__eq__()方法。

整数缓存问题

  Python仅仅对比较小的整数对象进行缓存(范围 [-5,256]),而并非是所有整数对象,需要注意的是,这仅仅是在命令行中执行,而在pycharm或者保存为文件执行,结果是不一样的,这是因为解释器做了一部分优化(范围是 [-5,任意正整数])。

  总结

    1、is 比较两个对象的 id 值是否相等,是否指向同一个内存地址;

    2、== 比较的是两个对象的内容是否相等,值是否相等;

    3、小整数对象 [-5,256] 在全局解释器范围内被放入缓存供重复使用;

    4、is 运算符比 == 效率高,在变量和 None 进行比较时,应该使用 is。

字符串基本特点

  字符串的本质是:字符序列。Python的字符串是不可变的,我们无法对原字符串做任何修改。但可以将字符串的一部分复制到新创建的字符串,达到“看起来修改”的效果。

  Python不支持单字符类型,单字符也是作为一个字符串使用的。

字符串的编码

  Python3直接支持Unicode,可以表示世界上任何书面语言的字符。Python3的字符默认就是16位Unicode编码,ASCII码就是Unicode编码的子集。

  使用内置函数 ord() 可以把字符串转换成对应的 Unicode码

  使用内置函数 chr() 可以把十进制数转换成对应的字符。

引号创建字符串

  我们可以通过单引号或者双引号创建字符串,使用这两种引号的好处是可以创建本身就包含引号的字符串,而不用使用转义字符。

  连续三个单引号或三个双引号,可以帮助我们创建多行字符串。

空字符串和 len() 函数

  Python允许空字符串的存在,不包含任何字符且长度为0。

  len() 用于计算字符串含有多少字符。

 

posted @ 2019-02-25 22:03  cherish_lwy  阅读(239)  评论(0)    收藏  举报