Python_Day2_字符串

赋值

x = y = 123 	#链式赋值
a,b = 1,2		#系列赋值
a,b = b,a		#变量互换
MAX_NUM = 100	#常量实际可以更改,逻辑上不要改

内置类型

1.整型
2.浮点型3.14=314e-2
3.布尔型 :Ture、False
4.字符串型

运算

运算符:±*%
/(浮点除)
//(整除)
**(幂)

divmod(13,4)    #同时输出商和余数元组
a += 2			a = a+2

类型转换

#int()实现类型转换
a = int('456')
b = int(True)
c = int(3.14)
#不能转换
int('abc') 
int('true')

python整数大小无上限
类型转换不改变原有值,而是生成新值

round(value) #返回四舍五入值
>>> round(3.6) 
4

时间的表示

时间的元年是1970

import time
print(time.time())

比较运算符

==、!=…

逻辑运算符

or

>>> a = True
>>> b = False
>>> a or b	#第一个True,返回第一个,不计算后面的
True
>>> 30 or b
30
>>> b or 30	#第一个False,返回第二个
30

and

>>> 30 and b	#第一个为True,直接返回第二个
False
>>> b and a		#第一个为False,不计算后面,直接返回False
False
>>> 30 and a
True

not

>>> not 1
False
>>> not False
True

同一运算符

is :判断是不是同一对象,比较的是地址
==:比较的是值

>>> a = 1000
>>> b = 1000
>>> a == b
True
>>> a is b
False
>>> id(b)
2327959247312
>>> id(a)
2327959247568

整数缓存【-5,256】

>>> c = 3
>>> d = 3
>>> c is d
True

字符串

  • 编码
    16 位 Unicode 编码
    字符串的修改,实质上是创建新的字符串
>>> ord('A')
65
>>> ord('1') 
49
  • 创建字符串
>>> a = "I'm a student"		#双引号包单引号
>>> b = 'I am "Tom"'		#单引号包双引号

a = '''name = 'sxl, age = 21,	
sex = 1'''					#创建多行
  • input() 从控制台获取字符串
name = input('请输入你的名字:')
  • len()
>>> d = ''		#空字符串
>>> e = ' '
>>> len(d)
0
>>> len(e)
1
  • 拼接
>>> "aa" + "b"
'aab'
  • 复制
>>> "12"*5
'1212121212'

转义字符

\ +特殊字符

不换行打印

print("sxl", end='*')
print('ok')

sxl*ok		#不换行

取字符

>>> str(123) 	#转为字符串
'123'
>>> a = 'abcde'
>>> a[0]		#正向搜索
'a'
>>> a[-1]		#负向搜索
'e'
>>> a.replace('c','u')	#字符串替换,不过a对象没有变化,只是生成新对象。
'abude'

切片操作(包头不包尾)

>>> a = 'abcdefg'
>>> a [1:6:1]		#起始偏移量、终止、步长
'bcdef'
>>> a [:]			#全
'abcdefg'
>>> a [1:]			#简写
'bcdefg'
>>> a [:2]			#简写
'ab'
>>> a [-4:-2]		#反向
'de'
>>> a [::-2]		#反向
'geca'

split()切割、join()合并

>>> a = 'to be or not to be'
>>> a.split()		#切割,默认空白字符
['to', 'be', 'or', 'not', 'to', 'be']
>>> a.split('to')
['', ' be or not ', ' be']
>>> b = ['', ' be or not ', ' be']
>>> 'to'.join(b)	#合并列表,用to连接
'to be or not to be'
#join()合并效率高
import time
time01 = time.time()
a = ''
for i in range(100000):
    a += 'sxl'
time02 = time.time()
print('join函数只生成一个对象的时间' + str(time02-time01))

time03 = time.time()
li = []
for i in range(100000):
    li.append('sxl')
a = ''.join(li)
time04 = time.time()
print('+生成n个对象' + str(time04-time03))

字符串驻留机制

#已经生成了'abc_1'对象,a、b变量只是引用对象。(该对象必须符合标识符规则)
>>> a = 'abc_1'
>>> b = 'abc_1'
>>> id(a)
2590876081968
>>> id(b)
2590876081968

字符串格式化str.format()

#{索引}
>>> a = '名字是{0},年龄是{1},{0}是中国人'
>>> a.format('sxl',21) 
'名字是sxl,年龄是21,sxl是中国人'

#{参数名}
>>> a = '名字是{name},年龄是{age}'          
>>> a.format(name ='sxl', age = 21)         
'名字是sxl,年龄是21'
#^、<、>分别是居中、左对齐、右对齐,后面带宽度
#:号后面带填充的字符,只能是一个字符,
#不指定的话默认是用空格填充
>>> "{:*>8}".format("245")
'*****245'
#数字格式化
>>> a = "我是{0},我的存款有{1:.2f}" 
>>> a.format("sxl",3888.234342)
'我是sxl,我的存款有 3888.2

可变字符串

字符串是不可变对象,如果修改其值只能创建新对象。或者用io.StringIO()原地修改

>>> import io
>>> a = '123456789'
>>> b = io.StringIO(a)
>>> b
<_io.StringIO object at 0x00000249E854D820>		#可变对象,可以修改
>>> id(a)
2516453935024
>>> id(b)
2516453742624
>>> b.seek(7)	#移动到索引值为7的位置
7
>>> b.write('6')	#在该位置写如6
1
>>> b.getvalue()
'123456769'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值