今天主要学习了字符串的索引和切片,字符串操作,for循环,列表,元祖,join() , range() , for的循环嵌套,等知识点。其中join() , range() ,是非常重要的方法。
在开始今天的内容之前,先补充三个知识点
1.
ASCII码: 字母,数字,特殊字符:用8位(一个字节)来表示 Unicode码:16位来表示 , 两个字节 ; -> 升级32位 ,四个字节 utf - 8 : 最少用8位来表示 (英文字母), 欧洲16位2个字节,亚洲24位,3个字节 gbk : 表示英文1个字节,表示中文2个字节
2.
Python 2 在编译安装时,已于通过参数 --enable-unicode=ucs2 or --enable-unicode=ucs4分别用于指定使用2个字节,4个字节表示一个unicode字符; Python3 无法进行选择,if 默认使用ucs4: 查看当前Python中表示unicode字符串时占用的时间: import sys print(sys.maxunicode) # 如果值是 65535 , 则表示使用ucs2标准,即:2个字节表示 # 如果值是 1114111,则表示使用ucs4标准,即:4个字节表示
3.
while(1)的效率高于while(True)
1.初识数据类型:
int : bit_length() 转化2进制的最小位数
bool : True , False
str -> bool bool(str) : 只要引号有东西,则为True ,引号里如果为空,就是False
2.索引和切片:顾首不顾尾
s = 'hello ming' s1 = s[2:4] print(s1) s2 = s[0:] print(s2) s3 = s[0:-1] print(s3) s4 = s[0:4:2] print(s4) s5 = s[-1::-2] print(s5)
3.字符串的方法:
1.capitalize() : 首字母大写 2.upper(): 全部大写 3.lower(): 全部小写 4.center(): 居中,有width参数, 5.find(): 通过字符(元素)找索引下标,找不到返回-1 6.index(): 通过元素找索引,找不到报错 7.swapcase(): 大小写翻转 8.len(): 通用方法,遍历它的元素个数,长度 9.replace(): 替换,前面是旧的,后面的是新的,它默认是全部 10.isdigit (): 判断是否由数字组成:返回的是BOOL值 11.startswith(): 以开始 endswith(): 以结束 12.title(): 标题首字母大写 13. count() : 计数,某一个字母在一个单词中出现的次数 14.strip() :删除空格 rstrip(): 删除右空格 lstrip(): 删除左空格 * 15.split() : 以什么形式隔开 16.format(): 格式化输出,占位符是{},和%s性质一样 1){}{} 2){0}{1}{2} 3){name}{age}{hobby}
练习:
1.
s = '132a4b5c' #1.形成新的字符串 s1 = '123' s1 = s[0:3:2] s2 = s1 + '3' print(s2) #2.形成新的字符串 s2 = 'a4b' s2 = s[3:6] print(s2) #3.形成新的字符串 s3 = '1245' s3 = s[::2] print(s3) #4.形成新的字符串 s4 = '3ab' s4 = s[1:6:2] print(s4) #5.形成新的字符串 s5 = 'c' s5 = s[-1] print(s5) #6.形成新的字符串 s6 = 'ba3' s6 = s[-3:0:-2] print(s6)
2.
#使用while 和 for 循环分别打印字符串 s = 'asdfer'中每个元素 #1 . while s = 'asdfer' i = 0 while i <6 : print(s[i]) i+=1 print('-------') # 2. for for j in s: print(j+1)
4.for循环:
for循环:有限循环
可迭代对象:有多个元素组成的
5.列表:
列表和C,Java中的数组相同。列表是Python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,它是以 [ ] 括起来,每个元素以逗号隔开,而且它里面可以存放各种数据类型。
而且列表是有序的,有索引值,可切片,方便取消。
以逗号隔开的被认为是一个整体。
#1.增加 #append() :添加到最后 li = ['chunlai','chaojun','laozhai','baomu'] # for i in li: # s = input('添加的成员:') # li.append(s) # print(li) #增加 # #添加,添加到最后的位置 # li.append('xiaozhou') # print(li) # #插入,按照索引的位置进行插入 # li.insert(0,'xiyangyang') # print(li) # #迭代添加 # li.extend('zhaomin') # print(li) # li.extend(['1','2','不悔妹妹']) # print(li) #删除 # #pop删除,有返回值,返回值就是要删除的元素 # name = li.pop() # print(name) # print(li) # #pop按照索引删除元素 # li.pop(2) # print(li) # #remove通过元素删除 # li.remove('chaojun') # print(li) # #清空列表 # li.clear() # print(li) m = ['xiaohua','xiaomei','xiaoming'] # #删除列表 # # del li # # print(li) # #del的切片删除 # del m[0::2] # print(m) #修改 # #直接通过索引下标来进行修改 # m[0] ='chunlai' # print(m) # #切片修改,只采最小的元素值 # m[1:2] = '孔子' # print(m) # #切片修改,元素值可以有多个,不影响,也不需要一一对应 # m[1:3] = ['小徐','小样','小花'] # print(m) #查找 #1. for #2. 切片
6.列表的嵌套:
#列表的嵌套 # li = ['taibai','wusir','alex','ritian',['ming','hua','egon',89],23] # print(li[1][2]) # print(li[0].capitalize()) # print(li[4][0][1]) # print('-------------') # name = li[1] = 'chunlai' # li[1] = name # print(li)
7.元祖:
元祖被称为只读列表,即数据可以被查询,但不能被修改。所以,字符串的切片操作同样适用于元祖。
eg. (1,2,3) ,('a','b','c')
'儿子不能改,孙子可能改'
eg.
tu = (1,2,3,'alex',[2,3,4,'taibai'],'egon')
#元祖中的元素不能更改,但元祖内列表中的元素却是可以修改的。
将字符串转成列表:split()
将列表转成字符串:join()
8.join(): (可迭代对象) ,join最后返回的是字符串
eg.
s = ' alex '
s1 = '_'.join(s)
print(s1) #_a_l_e_x
9.range() : 数字按照数字排列的列表 ,(首,尾,步长),区间仍是顾头不顾尾
eg.
for i in range( 0 ,10 ):
print( i )
昨日作业:
1.
在这里我实现了加减乘除,可作为简易的计算器。
实现一个整数加法计算器: 如:content = input('请输入内容:') 如 用户输入: 5+9 或5+ 9 或 5 + 9 ,然后进行分割再计算 # int() 会自动删掉空格 eg. sum = 0 num = 1 content = input('请输入内容:') if content.find('+') != -1: con1 = content.split('+') leng = len(con1) i = 0 while i < leng: sum += int(con1[i]) i+=1 elif content.find('-') != -1: con2 = content.split('-') leng1 = len(con2) i = 1 sum = int(con2[0]) while i < leng1: sum -= int(con2[i]) i+=1 elif content.find('*') != -1: con3 = content.split('*') leng3 = len(con3) i = 0 while i < leng3: num = num * int(con3[i]) i+=1 elif content.find('/') != -1: con4 = content.split('/') leng4 = len(con4) i = 1 num = con4[0] while i < leng4: num = int(num) / int(con4[i]) i+=1 if content.find('+') != -1 or content.find('-') != -1 : print(sum) elif content.find('*') != -1 or content.find('/') != -1 : print(num)
2.
计算用户输入的内容中有几个整数 如: content = input('请输入内容:') 如 fhdal1234slfh98769fjdla m = 0 content = input('请输入内容:') for i in content : if i.isdigit() == True : m +=1 print(m)
在今日博客的最后,我分享一道今天自己的错题:
用for嵌套循环来实习打印:
for i in range(len(li)):
if type(li[i]) == list:
for j in li[i]:
print(j)
else:
print(li[i])