11.2Python学习日志

11.字符串切片slice操作

默认步长是1

(正数)

 [:]提取整个字符串           print("abcdef"[:])        #结果为“abcdef”

[start:]从start索引到结尾      print(“abcdef”[2:])  #a是0,b是1,c是2,结果为“cdef”

[:end]从头开始直到end-1      print(“abcdef”[:2])               #"ab"

[start:end]从start到end-1(包头不包尾)         print(“abcdef”[2:4])         #“cd”

[start:end:step]从start到end-1步长为step        print(“abcdef”[1:5:2])  #''bd''

(负数)

“stuvwxyz”[-3:]              #从倒数第三个开始到结尾“xyz”

“stuvwxyz”[-8:-3]              #倒数第八到倒数第三(包头不包尾)“stuvw”

“stuvwxyz”[::-1]                      #步长为负反向提取“zyxwvuts”

起始偏移量start小于0,则会当做0,终止偏移量end大于“长度-1”会直接取到末尾

12.split()分割和join合并 

split()可以基于指定分隔符将字符串分割为多个子字符串。如果不指定则默认使用空白字符

a = “to be or not to be”
b = a.split()
c = a.split(be)
print(b)        #"to",“be”,“or”,“not”,“to”,“be”
print(c)        #“to”,“or not to”

join()的作用和split相反

a=['l','m','h']

'*'.join(a)

'l*m*h'

join()函数仅仅新建一次新对象,join()效率比+高很多

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

常量字符串只保留一次

两个变量同时指向一个字符串,则其是完全一致的

14.字符串常用方法汇总

a = "abcdfrivhivhsivdkvsivjvjs"
print(a.startwith("abcd"))        #True以指定字符串开头
print(a.find("f"))        #4第一次出现指定字符的位置
print(a.rfind("j"))        #23最后一次出现指定字符的位置
print(a.count("j"))        #2指定字符串一共出现了几次

去除首尾信息

print(" l m h ".strip())        #"l m h"什么也不写就去除首尾空格
print("*l m h*". lstrip(*))        #去开头的*
print("*l m h*". rstrip(*))        #去末尾的*

大小写转换

a = "qiQi is in xidian univercity"
print(a.capitalize())    #Qiqi is in xidian univercity只有首字母大写
print(a.title())    #Qiqi Is In Xidian Univercity每个单词首字母大写
print(a.upper())    #QIQI IS IN XIDIAN UNIVERCITY全部大写
print(a.swapcase())    #QIqI IS IN XIDIAN UNIVERCITY大小写进行转换

格式排版

c = "hello"
print(c.ljust(20,"?"))        #hello??????????????? 20个字符已经写好的居左,剩下用?代替
print(c.center(20,"?"))        #???????hello???????? 20个字符已经写好的居中,剩下用?代替
print(c.rjust(20,"?"))        #???????????????hello  20个字符已经写好的居右,剩下用?代替

特征判断方法

isalnum()是否由字母(或汉字)或数字组成

isalpha()是否只有字母或汉字组成

isdigit()是否只有数字组成

isspace()是否为空白符

isupper()是否为大写字母

islower()是否为小写字母

15.字符串的格式化

a = "年龄是:{1},名字是:{0}"        #顺序无关,只是数字对应format中的排序
b = a.format("lmh",18)
print(b)
#年龄是:18,名字是:lmh
a = “名字是:{name},年龄:{age}”
b = a.format(age=18,name="lmh")
print(b)

#可以使用name和age,顺序就不重要了

16.填充和对齐

^居中<左对齐>右对齐,后面带宽度

:后面带填充的字符,只能是一个字符,不指定的话默认用空格代替

a = "我是{0},我喜欢数字{1:*^9}".format("lmh","8")
#我是lmh,我喜欢数字****8****

17.数字格式化

浮点数通过f,整数通过d进行需要的格式化

a = "我是{0},我的计算结果是{1:.2f}"  #.2f表示格式化为保留两位小数的浮点数,会进行四舍五入
b = a.format("lmh",314.3487)
print(b)

#我是lmh,我的计算结果是314.35

18.可变字符串

原地修改字符串(一开始就定义一个可变字符串),可以使用io.StringIO对象或array模块

import io       #调用io模块
a = "abcdccakjioja"
aio = io.StringIO(a)        #aio是可变字符串
print(aio)      #只能获得字符串的地址
print(aio.getvalue())       #getvalue()可以获得字符串的值
aio.seek(3)         #指针定位到索引3的位置
aio.write("????")
print(aio.getvalue())

#abcdccakjioja
#abc????kjioja

22 列表

1.序列(列表,元组,字典,集合,字符串)

序列是一种数据存储方式,序列中存储的是对象的地址

  • 列表:用于存储任意数目,任意类型的数据集合.是内置可变序列,包含多个元素有序连续的内存空间                                                                                                                                          a=[10,20,30,40]     [ ]里的是列表的元素,可以是任意类型a=[10,'abc',True]                           Python的列表大小可变

2.列表的创建

[ ]或使用list()

  • range()创建整数列表,格式为range([start],end,[step])  注意还是包头不包尾                                            

        start参数:可选,表示起始数字,默认是0

        end参数:必选,表示结尾数字

        step参数:可选,表示步长,默认是1

       range()直接返回的是一个对象也就是原有的范围,而不是列表,需要list()将其转变为列表对象

a = list(range(15,9,-2))
print(a)

#[15, 13, 11]
  • 推导式生成列表

        可以进行更复杂的运算

a = [x*3 for x in range(0,30,3) if x%4==0]
print(a)

#[0, 36, 72]

3.列表元素的添加

尾部添加,删除元素(推荐)

增加和删除元素,列表会自动进行内存管理,涉及列表元素大量移动,效率较低,除非必要,只在尾部添加删除元素

  • append()方法(速度最快)

       原地修改列列表,在列表尾部添加新的元素

a = [20,40]
a.append(50)    #注意这里的写法
print(a)

#[20, 40, 50]
  • +运算符操作

        并不是真正的尾部添加元素,而是创建新的列表对象

a = [20,40]
a = a+[50]
print(a)    #两次地址不一样,是创建了新的对象

#[20, 40, 50]
  •      extend()方法

       将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象

a = [20,40]
b = [50,60]
a.extend(b)     #原对象修改
print(a)    

#[20, 40, 50,60]
  • insert()插入元素

        可以将指定的元素插入到列表对象的任意指定位置。让插入位置及其后面所有元素进行移动,会影响处理速度   

a = [10,20,30]
a.insert(2,100)     #在2的位置进行插入操作,插入的元素是100
print(a)

#[10, 20, 100, 30]
  •  乘法扩展

        生成新列表,新列表元素是原列表元素的多次重复

a = ['lmh',100]
b = a*3
print(a)        #['lmh',100]
print(b)        #['lmh',100,'lmh',100,'lmh',100]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值