python不可变类型常用功能

本文详细介绍了Python中的字符串操作技巧,包括随机数生成、保留有效数字、字符串切片、换行符使用、格式化方法、字符串拼接与复制、连接与分割、查找与替换等实用技能。

不可变类型:数字 字符串str 元组tuple

可变类型:表list 字典dict 集合set

1.random()求随机数

random(n1,n2)

随机输出一个[n1,n2)间的数字,默认输出的是整数

random(0,1),默认输出浮点小数

2.round()保留XX位有效数字

a = 1.2345678

print(round(a,3))

a = 1.23

3. 字符串切片

str1 = 'hello world!'
str1 = str1[0:2]#从第0位开始算起,到第2位前结束,实际切了[0,1]部分的内容
#he
str1 = str1[2:5]#从第0位开始切,到第5位前结束
#llo
str1 = str1[0:8:2]#从第0位开始算起,步长为2,即第0位、第3位被选择...到第8位前结束
#hlow
str1 = str1[-12:-1]#第-12位相当于第0位,第-1位相当于第11位
#hello world!
str1 = str1[::-1]#以步长1,倒着输出str1
#!dlrow olleh
str1 = str1[-10:-1:1]#步长为负数时从后往前开始算,从第-1位开始算,到第-10位前截止,步长为1,正序输出
#llo world

为什么步长不能用负数呢? 

4.换行符

字符串中带\t(缩进符4个空格) \n(换行符)

str1 = 'hello\n world!'
str2 = 'hello\t world!'
print(str1,str2)
#hello
# world!
#hello	 world!

在字符串前打 r,表示字符串里面的\都不进行转义;也可以在字符串里的\前加\,不进行转义

str1 = r'hello\n world!'
str2 = r'hello\t world!'
print(str1)
print(str2)
#hello\n world!
#hello\t world!

在字符串后打\表示换行,但不影响这一串内容连为一个字符串

str1 = 'hello'\
       ' world!'
str2 = 'aaa'\
        'bbb'\
        'ccc'
print(str1)
print(str2)
#hello world!
#aaabbbccc

5.字符串格式化

str = 'xxx买了一盒零食,用了xx元',如果想替换xx的部分,输出自己想要的内容

1.用具体的值替换位置,值类型与输出值的方式,一一对应。特别注意:具体内容的()前要有%

print('%s买了一盒零食,用了%d元'%('迪迦',5))
#迪迦买了一盒零食,用了5元
print('%d买了一盒零食,用了%s元'%(5,'迪迦'))
#5买了一盒零食,用了迪迦元

2.format方法

用.format()代替了%s %d的输出方式,

{}内不填数字时,此时输出的内容顺序只和设计的位置有关

如果{}内填了数字,表示这个位置输出后面设计内容里的第几个值

print('{}买了一盒零食,用了{}元'.format(5,'迪迦'))
#5买了一盒零食,用了迪迦元
print('{}买了一盒零食,用了{}元'.format('迪迦',5))
#迪迦买了一盒零食,用了5元
print('{1}买了一盒零食,用了{0}元'.format('迪迦',5))
#5买了一盒零食,用了迪迦元

3.f-string format方法进阶版

要注意的是,格式化前需加上f标志,表示采用f-string方式输出

name = '迪迦'
price = 5
print(f'{name}买了一盒零食,用了{price}元')
#迪迦买了一盒零食,用了5元
a = f'{name}买了一盒零食,用了{price}元'
print(a)
#迪迦买了一盒零食,用了5元

6.字符串拼接 +

将2个字符串按照输入的前后顺序,拼成一个指向新内存地址的新字符串

a = 'hi'
b = 'hello'
c = a
print(id(a),id(b))
#38890032 38890224
a = a+b
b = b+c
print(a,b,id(a))
#hihello hellohi 38931888

7.字符串复制 *

a = 'xx'

a = a*2,a将原本的字符串内容拼接了2次赋值给自己,a指向保存了这个新字符串的地址

a = 'hi'
print(id(a))
#39217456
a = a*2
print(a,id(a))
#hihi 39259184

8. .join()字符串连接

将调用对象在参数的每一位之间都插入,生成的结果用新开辟的内存空间保存,不修改原内存地址保存的内容

a = ' '
print(id(a))
#39086448
b = 'sssss'
a = a.join(b)
print(a,b,id(a))
#s s s s s sssss 34606576

9.split(分割内容,次数)以指定方式分割字符串

调用对象.split(以指定的内容去分割,次数),将返回不多于 次数+1 个子串

以下表示以'-'去分割字符串a,得到一个列表,内含3个子串

a = 'abc-def-hig'
print(a.split('-',2))
#['abc', 'def', 'hig']

10. .find(目标要找的内容,从第x位开始)

调用对象.find('预期要找的内容',从原字符串第x位下标开始找起),返回值是

找到的第一个字符的下标

str1 = "this is string example....wow!!!";
str2 = "exam";
 
print str1.find(str2);
print str1.find(str2, 10);
print str1.find(str2, 40);

11. 调用对象.replace('目标内容','要替换的新内容')

str1 = 'hello'
print(str1.replace('he','HE'))
#HEllo

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值