Python第三课数据类型和字符串与数值进阶
索引和切片加强操作
a = 'asdfgge' --------从零开始,左闭右开,超出索引范围报错 -------#注意,a(就是你起的变量名)后面要加中括号,否则报错
print(a[3])#这里是指取下标为3的字符 # a[]
f
print(a[3:])#这里是指从下标从3开始取值
fgge #下标的结束位置不会被算进去,就是左闭右开
print(a[:4]) #这里是指从下标为0开始取到下标为4的位置截止
asdf
print(a[1:5])#这里是指从下标为1开始取值到5结束
sdfg
print(a[1:6:2]) #这里的是指从1开始取值到6结束,2是间隔范围取值。
sfg
print(a[-1]) #这里的-1是指从右往左的第一个值。
e
拼接符的进阶操作方式
常规拼接的方法
a = '爱小玉'
b = '我'
print(b+a)
我爱小玉
用%s(占位符)拼接
a = '我真的爱小玉!' #注意,在字符里面填了几个占位符就得在后面的%括号里插入几个数据。
b = '真的'
print('我真的%s爱小玉' %b) c = '我%s真的%s爱小玉!' %(b,b)
我真的真的爱小玉 print(c)
我真的真的真的爱小玉!
用join(连接)方法拼接
a = '我真的爱小玉!'
b = '真的' #注意 前面''(字符串)表示在拼接的中间加入想要加的内容
print('真的真的'.join([a,b])) # join要通过.(点)来调用
我真的爱小玉!真的真的真的 # join只能在[](列表)多个字符串进行拼接,否则报错。
format(格式化)占位拼接 #通过花括号{}占位进行拼接,有几个{}占位就得插入几个数据。
a = '我爱'
b = '小玉'
print(f'{a}{b}') ------------#重点要记,f是用来声明的,表示我要在''字符串里面进行传值
我爱小玉
a = '我{}小{}' or a = '我{}小{}'.format('爱','玉')
print(a.format('爱','玉')) print(a)
我爱小玉 我爱小玉
a = '我{1}小{0}'.format('玉','爱') # 这里是通过下标format('玉','爱')里面的数据来指定{}占位数据位置
print(a)
我爱小玉
a = '玉'
b = '爱'
c = '我{y2}小{y1}'.format(y1=a,y2=b) #这里是通过变量format(y1=a,y2=b)来指定{}占位数据位置
print(c)
我爱小玉
判断符
== 只判断值是否相同
python交互式界面 3==3 pycharm编译器界面print(3==3)
True True
is和is not除了判断值是否相同,还判断id是否相同-------id指的是内存地址
is #判断条件成立就True,否则Flase
is not #判断条件不成立就True,否则Flase
>>>a = 257 #在python交互式界面,对于小整数有对象池存储问题,只有在[-5,256]范围内 is 才会成立。
>>>b = 257
>>>a is b or a is not b
>>>False True
print(1234 is 1234) print(1234 is 1234) # 在pycharm编译器里,即使整数超过256,使用is也成立,这是因为解
True False # 释器做了一些优化。
in和not in判断一个字符串是否存在指定的数据
in #判断条件成立就True,否则Flase
not in #判断条件不成立就True,否则Flase
a ='我爱小玉'
print('爱小玉'in a) print('爱小玉'not in b)
True False
print('不爱小玉'in a) print('不爱小玉'not)
False True
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
print(f'1 == 1 {1 == 1})
运算符
增量赋运算符
+= # a += b等于a = a+b
a = 1
a += 1
print(a)
2
-= # a -= b等于a=a-b
a = 2
a -= 1
print(a)
1
*= # a *= b等于a = a*b
a = 2
a *= 2
print(a)
4
/= # a /= b等于a = a/b
a = 10
a /= 2
print(a)
5
%= # a %= b等于 a = a % b
a = 9
a %= 5
print(a)
4
**= # a **= b等于 a = a*b
a = 3
a *= 3
print(a)
9
//= # a //= b等于a = a//b
a = 10
a //= 3
print(a)
3
比较级运算符
== # 等不等于
print(3==3) print(3==4) a = 3==3 3==3 # 等于则返回True,反之则False,==与is不同,==它是不识别id的
True False print(a) True
True
!= # 不等于
print(3!=4) print(3!=3) #不等于则返回True,反之则False
True False
> # 大于
print(3>2) print(1<2) #大于则返回True,反之则False
True False
< # 小于
print(2<3) print(3<2) #小于则返回True,反之则False
True False
>= # 大于等于
print(3>=3) print(2>=3) #大于等于则返回True,反之则False
True False
<= # 小于等于 #小于等于则返回True,反之则False
print(3<=3) print(3<=2)
True False
逻辑运算符
not not x # 满足条件x时返回False,不满足条件x时返回True
a = 3
b = 2
c = 3
print(not a == c) print(not a != b)
False True
and x and y # 同时满足x和y两个条件返回True,否则返回False
a = 1
b = 0
c = 1
print(a==c and b<c) print(a<=b and a<=c)
True False
or x or y # 只需要满足x或y中的任意一个条件就返回True,两个都不满足时返回False
a = 5+1
b = 4+1
c = 3+3
print(a==c or a==b) print(b==c or b==a)
True False
逻辑运算符优先级 # not>and>or
a = 2+3
b = 1+4
c = 2+4
print(a==b and a==c or not a == b) # 从左往右
False
进阶版
x or y # 任意一边为True或者False(0)时都返回True,两边为True时优先返回左边----从左往右
>>>0 or 2
>>>2
>>>2 or 0
>>>2
# 这里0指的是bool(布尔值)False(0); False(0)以上的数除了某些特定情况都可以理解为True。
x and y
>>>0 and 1
>>>0
>>>1 and 0 --------# 任意一边为False时都返回Fasle,两边都为True时优先返回右边------从右往左
>>>0
>>>1 and 2
>>>2
not x # x为True时则返回False,x为False时则返回True
>>>not 1
>>>False
>>>not 0
>>>True
进制转换
8进制 %o # 满8进一
print('%o' %100) '%o' % 99
144 143
10进制 %d # 满10进一
print('%d' %15) '%d' % 15
15 15
16进制 %x # 满16进一
print('%x' %100)
64
用 int(整数) 转换进制方法
print(int('100' 2)) print(int('aaa',16)) # ''字符串里面填的是数值 ,后面表示要填的进制
4 2730 # 输出结果全部都是十进制。
浮点数(float)%f # 默认保留六位小数
'%.2f' % 2 # 可以用%. f来控制你想要保留多少位小数。
2.00
%e科学计数 # 默认保留六位小数
'%.2e' % 123.111111 # 也可以用%. e来控制你想要保留多少位小数
1.23e+02 #这里的o2表示以10为底的**幂运算------1.23*(10**2)
%g # 不会默认保留小数
'%.2g' %123 # 用%. g来控制你想保留的有效数字
1.2e+02 # 这里如果保留的有效数字位数小于整数位数的话,则自动转为科学计算。
网友评论