python·学习

对象

python中一切皆对象,每个对象由:标识(identity),类型(type),value(值)组成

       1.标识用于唯一标识对象, 通常对应于对象在计算机内存中的地址,使用内置函数id(obj)可返回对象obj的标识(就是在内存块中的地址

       2.类型用于表示对象存储的“数据”的类型,类型可以限制对象的取值范围以及可执行的操作。可以使用type(obj)获得对象的所属类型。

       3.值表示对象所存储的数据的信息,使用print(obj)可以直接打印出值。

对象的本质就是:一个内存块,拥有它特定的值,支持特定类型的相关操作。

引用

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

变量位于:栈内存

对象位于:堆内存

python是动态类型语言

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

python是强类型语言

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

标识符

标识符:用于变量,函数,类,模块等的名称。标识符有如下特定的规则:

1.区分大小写,如:sxt和SXT是不同的

2.第一个字符必须是字母,下划线,其后字符可为字母,数字,下划线

3.不能使用关键字,比如:if,or,while等

4.以双下划线开头和结尾的名称通常有特殊含义,尽量避免这种写法,比如__init__是类的构造函数。

变量的声明和赋值

变量的声明和赋值用于将一个变量绑定到一个对象上,格式如下:

变量名   =    表达式

删除变量和垃圾回收机制

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

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

 链式赋值

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

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

系列解包赋值

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

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

使用系列解包赋值可以实现变量交换

常量

python不支持常量,没有语法规则限制改变一个常量的值。只能约定常量不做更改

最基本内置数据类型介绍

 1.整数  2.浮点型   3.布尔型   4.字符串型

数字 

 

 整数

 python中,除10进制,还有其他三种进制:

            0b或0B  二进制

            0o或0O八进制

            0x或0X十六进制

这三种进制可以非常方便的进行“位运算'操作。

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

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

2.布尔值true转为1,false转为0,如:int(true)结果是1

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

自动转型:

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

浮点数 

浮点数,称为float。浮点数用科学计数法表示

类型转换和四舍五入 

1.类似int(),也可以使用float()将其他类型转换成浮点数

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

3.round(value)可以返回四舍五入的值(但不会改变原有值,而是产生新的值)

 比较运算符

 逻辑运算符

同一运算符 

 字符串

字符串基本特点

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

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

字符串编码

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

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

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

引号创建字符串 

1.可用单引号或双引号创建字符串。例如:a = ‘abc’;b = ‘’xuexi‘’

使用这两种引号的好处是可以创建本身就包含引号的字符串,而不用使用转义字符。(单夹双,双夹单)

2.连续三个单引号或三个双引号,可以创建多行字符串。

 空字符串和len()函数

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

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

转义字符

使用“\+特殊字符",实现某些难以用字符表示的效果。

字符串拼接

 可以使用+将多个字符拼接起来。

a.若+两边都是字符串,则拼接。

b.若+两边都是数字,则加法运算。

c.若+两边类型不同,则抛出异常。

可以将多个字面字符串直接放到一起实现拼接。

 字符串复制

使用*可以实现字符串复制

不换行打印

 调用print时,会自动打印一个换行符。当不想自动换行时,可以通过使用参数end = ”任意字符串“。实现末尾添加任何内容。

从控制台读取字符串

 使用input()从控制台读取字符串

 str()实现数字转型字符串

 str()实现其他数据类型转型为字符串

使用[ ]提取字符

字符串的本质就是字符序列,我们可以通过在字符串后面添加[ ],在[ ]里面指定偏移量,可以提取该位置的单个字符。

       正向搜索:

               最左侧第一个字符,偏移量是0,第二个偏移量是1,以此类推。直到len(str)-1为止。

       反向搜索:

              最右侧第一个字符,偏移量是-1,倒数第二个偏移量是-2,以此类推,直到-len(str)为止。

              

 replace()实现字符串替换

字符串是不可改变的。通过[ ] 可以获取字符串指定位置的字符,但是不能改变字符串,否则报错。

字符串不可改变。但是,有时必须替换某些字符。这时只能通过创建新的字符串来实现。

replace( )替换字符串的过程中。实际上是创建了新的字符串对象,并指向了变量a,而不是修改了以前的字符串,内存图如下:

字符串切片slice操作 

切片slice操作可以快速提取子字符串。标准格式为:

 [起始偏移量 start:终止偏移量end:步长 step]  左闭右开

[  :]提取整个字符串

字符串实现逆序输出: 

 将字符串中所有a字符输出:

split()分割和join()合并

split()可以基于指定分隔符将字符串分割成多个子字符串(存储到列表中),如果不指定分隔符,则默认使用空白字符(换行符/空格/制表符)。

join()的作用和split()作用刚好相反,用于将一系列子字符串连接起来。

拼接字符串要点:

        使用字符串拼接符+,会生成新的字符串对象,因此不推荐使用+来拼接字符串。推荐使用join函数,因为join函数在拼接字符串之前会计算所有字符串的长度,然后逐一拷贝,仅新建一次对象。 

测试两类拼接符耗费时间:

import time
time01 = time.time() #起始时刻
a = ""
for i in range(100000):
    a += "study"
time02 = time.time()  #终止时刻
print("运算时间:"+str(time02-time01))

time03 = time.time() #起始时刻
li = []
for i in range(100000):
    li.append("study")
a = "".join(li)      #使用join连接字符串

time04 = time.time()  #终止时刻
print("运算时间:"+str(time04-time03))

字符串驻留机制和字符串比较

字符串驻留:仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中。python支持字符串驻留机制,对于符合标识规则的字符串(仅包含下划线(_),字母和数字)会启用字符串驻留机制。

字符串格式化

format()基本用法

format函数可以接受不限个参数,位置可以不按顺序。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值