基础语法第二节

链式赋值:用于同一个对象给多个变量赋值 eg:x=y=123相当于x=123,y=123
系列解包赋值:
1.系列数据赋值给对应相同个数的变量【个数必须保持一致】eg:a,b,c=4,5,6
2.使用系列解包赋值实现变量交换:
a,b=10,20
a,b=b,a
print(a,b)
结果:a=20,b=10
常量:python 不支持常量,即没有语法规则限制改变一个变量的值,我们只能在程序的逻辑上不能改变。
下面介绍最基本的内置数据类型,后面可以自定义:
1.整型 2.浮点型 3.布尔型 4.字符型
python支持整数和浮点型可以对数字作以下操作:
加法(+)、减法(-)、乘法()、浮点数除法(/)、整数除法(//)、模(%)、幂(**)
[0不能作除数,使用divmod()函数同时得到商和余数]eg:print(divmod(10,3)) 结果:(3,1)]
python 支持四种进制:十进制、八进制、二进制、十六进制(在通常情况下,采用十进制,但在位运算中,可能需要采用其他运算)
使用int()实现类型转化
1.浮点数直接舍去小数点部分。如int(9.9)结果为9
2.布尔值True转化为1,False转化为0。如:int(True)结果为1
3.字符串符合整数格式(浮点数格式不行),则直接转化成对应整数,其他的都不行
自动转型:整数和浮点数是混合运算时,表达式结果自动转型成浮点数。eg:2+8.0=10.0

浮点数
浮点数用a*b^10形式的科学计算法表示。比如:3.14表示成314E-2。这些数字在内存中也是按照科学计数法存储的
类型转化和四舍五入
1.int()将其他类型转化为整型;float()将其他类型转化为浮点数。
2.整数与浮点数混合运算时,表达式结果将自动转型成浮点数。
3.round(value) 可以返回 四舍五入 的值。eg:round(3.4)结果是3
注:但是不会改变原来的值,只是产生了新的对象

增强型赋值运算符
a=a+1 相当于 a+=1
过程:先找出变量a ,变量通过地址对象,在对象实现加一的操作,生成新的对象,然后再将新的对象的地址赋给a.
符号有:+=、-=、*=、/=、//=、**=、%=
时间表示:【计算机的时间的表示是从“1970年1月1日00:00:00”开始。以毫秒(1/1000秒)进行计算。我们把1970年这个时刻称为“unix时间点”】
python中可以通过time.time()获得当前时刻,返回值是以秒为单位,带微妙(1/1000毫秒)精度的浮点值
import time
time.time()
将会获得数字【从1970-到现在时刻】
【操作】定义多点坐标,绘制折线,并计算起始点和终点距离
布尔值
python2中,直接用数字0表示False,数字1表示True
python3中,把True和False定义成关键字,但是它的本质还是1和0,甚至可以和数字相加。
比较运算符:== 比较对象的值是否相等;!= 比较对象的值是否相等 ;< 、>、<=、>= 返回值都是True或者False
逻辑运算符
or[逻辑或] x or y 说明:x为True时,返回值为True[不计算y];x为False时,返回为y
and[逻辑与] x and y 说明:x为True时,返回为y;x为False时,返回false
not[逻辑非] 说明:x 为True 时,返回false;x为false时,返回True.
同一运算符
同一运算符比较的是两个对象的地址,即两个对象的存储单元。
is与 ==的区别:
1:is 用于判断两个变量引用对象是否为同一个,即比较对象的地址
2:==用于判断引用对象的值是否相等,默认调用对象的是_eq_()方法
整数缓存问题
python仅仅对比较小的整数对象进行缓存(范围是【-5,256】),这仅仅是在命令行中执行,而在pycharm或者保存为文件执行,结果是不一样的。这是因为解释器做了一部分优化(范围是[-5,任意正整数])

字符串

本质:字符序列。python的字符串是不可变的,我们无法对原字符串做出任何的修改。但,可以将字符串的一部分复制到新创建的字符串,达到“看起来修改”的效果。
字符串编码
python 3支持unicode码,可以表示世界上任何书面语言的字符。ASCII码只能支持数字、字母。
使用内置函数ord()可以把字符转换成对应的unicode码
使用内置函数chr()可以把十进制转换成对应的unicode码
eg:ord(‘A’) 65 ord(‘高’) 39640 chr(66) ‘B’
引号创建字符串:
1可以通过单引号或者双引号创建字符串
2 连续三个单引号或者三个双引号可以帮助我们创建多个字符串(允许换行)
3允许空字符串的存在,不包含任何字符且长度为0
4 len()用于计算字符串含有多少
转义字符
‘+特殊字符’实现某些难以用字符表示出来的效果。比如:换行等
(在行尾时) 续行符;\反斜杠府;’ 单引号 ;\‘’ 双引号; \b 退格 ; \n 换行 ;\t 横向制表符 ;\r 回车
字符串拼接
1可以使用+将多个字符串拼接起来
(1)如果+两边都是字符串。则拼接
(2)如果+两边都是数字。则加法运算
(3)如果+两边不同的类型。则抛出异常
2可以将多个字符串直接放到一起实现拼接“aa”“bb” 结果为"aabb"
注:字符串拼接都是形成新的对象
字符串复制
a=‘sxt’*3
结果为 ‘sxtsxtsxt’
不换行打印
我们前面调用print时,会自动打印出一个换行符。有时候,我们不想换行,不想自动添加换行符,可以通过参数end=“任意字符串”,实现末尾添加任何内容:
eg:
print(“sxt”,end=’ ‘)
print("sxt‘’,end=’##‘)
print(“sxt”)
结果:sxt sxt##sxt
从控制台读取字符串
可以使用input()从控制台读取键盘输入的内容:my_name=input("请输入名字: ”) 然后程序等待,把输入数据传到变量。
下面讲三个内容:1str()实现数字型型转换字符串 2 使用[ ]提取字符 3 replace()实现字符串替换
1str()实现数字型型转换字符串
str(3.14) 结果:‘3.14’
str(3.14e2) 结果:‘314.0’
str(True) 结果:‘True’
当我们调用print函数时,解释器自动调用了str()将非字符串的对象成了字符串
2 使用[ ]提取字符
字符串的本质就是字符序列,我们可以通过在字符串后面添加【】,在【】里面指定偏移量,可以提取该位置的单个字符。
正向搜素:偏移量是0,第二个偏移量是1 。以此类推,直到 len(str)-1为止
反向搜素:最右侧第一个字符,偏移量是-1,倒数第二个字符偏移量是-2,以此类推,直到-len(str)
为止
字符串是不可变的。a=“abcdefg” a[3]=g 会报错.但是可以用字符串.replace(‘c’,高) 来实现效果上的替换。但是注意:返回的是新的对象【即重新打印a时,仍旧是原来的字符串】

字符串切片slice操作

切片slice操作可以让我们快速的提取字符串,标准格式为[起始偏移量:终止偏移量:步长step][左闭右开]
[:]提取整个字符串 [start:]从start索引开始到结尾 [:end]从头开始直到end-1 [start:end]从start开始到end-1 [start:end:step]从start开始提取到end-1,步长为step
操作数为负数:
[-3: ] 从[-3]开始往后数 ;[-8:-3]从-8到-3开始数 ; [::-1]步长为负,从右到左反向提取
切片操作时,起始偏移量和终止偏移量不在[0,字符串长度-1]这个范围内也不会报错,起始偏移量小于0,则会当做0;终止偏移量大于长度-1,会当做-1

字符串split()分割和join()合并

split()可以基于指定分隔符将字符串分割成多个字符串(储存到列表中)。如果不指定分隔符,则默认使用空白字符(换行符、空格、制表符)
eg: a = “to be or not to be ”
a.split() 结果:[‘to’,‘be’,‘or’,‘not’,‘to’,‘be’]
a.split(‘be’) 结果:[‘to’,‘or not to’,’’]
join()作用:用于将一系列子字符串连接,通常配合列表的使用。
eg:” a=[“sxt”,“sxt 100”,“sxt 200”]
"".join(a)
结果:'sxt
sxt100*sxt200’
“”.join(a)
结果:‘sxtsxt100sxt200’
要点:使用字符串拼接符+,会生成新的字符串对象,因此不使用+来拼接字符串。推荐使用join函数,因为join函数在拼接字符串之前会计算所有字符串的长度,然后逐一拷贝,仅新建一次对象。
【操作】测试+拼接符和join(),不同的效率

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

字符串驻留:仅保存一份相同且不可变字符串的方法,不同的值被存放杂字符串驻留池中。python支持字符串驻留机制,对于符合标识符规则的字符串会启用字符串驻留机制。
成员操作符:in / not in 关键字,判断某个字符(子字符串)是否存在于字符串中

字符串常用方法汇总:

1常用查找方法
len(a) 字符串长度
a.startswith(" xxxx" ) 判断是否以指定字符串开头
a.endswith(“xxxx”) 判断是否以指定字符串结尾
a.find(‘xxxx’) 第一次出现指定字符串的位置 结果:索引位置
a.rfind(‘xxxx’)最后一次出现指定字符串的位置 结果:索引位置
a.count(“xxxx”) 指定字符串出现了几次
a.isalnum() 判断所有字符是否全是字母或者数字
去除首尾信息
strip()去除字符串首尾指定信息。通过lstrip()去除字符串左边指定信息。rstrip()取出字符串右边指定信息
【操作】"#s#x#t#".strip("#") 结果:‘s#x#t’
“#s#x#t#”.lstrip("#") 结果:‘s#x#t#’
“#s#x#t#”.rstrip("#") 结果:‘#s#x#t’
大小写转化 a=" ssasasas"
a.capitalize() 产生新的字符串,首字母大写
a.title() 产生新的字符串,每个单词都首字母大写
a.upper() 产生新的字符串,所有字符全转成大写
a.lower() 产生新的字符串,所有字符全转成小写
a.swapcase() 产生新的字符串,所有字母大小写转化
格式排版
a.center ()、ljust()、rjust()这三个函数用于对字符串实现排版
eg : a=“SXT”
a.center(10,"#") 结果:‘###SXT####’
a.ljust(10,"#") 结果:‘SXT#######’
其他方法
1.isslnum() 是否为字母或者数字
2.isalpha() 检测字符串是否只由字母组成(含汉字)
3.isdigit() 检测字符串是否只由数字组成
4.isspace() 检测是否为空白符
5.isupper() 是否为大写字母
6.islower() 是否为小写字母

字符串格式化

str.format()
基本语法{}
eg:a=“名字是{0},年龄是{1}”
a.format(“高”,18)
填充与对齐
填充常常与对齐使用。
^、<、>分别是居中、左对齐、右对齐 后面跟宽度
:后面带填充的字符,只能是一个字符,不指定的话,默认用空格填充
eg: “{:#>8}”.format(“245”) 结果:’#####245’
数字格式化
浮点数通过f,整数通过d进行需要的格式化

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值