字符串(str) ~字符串相加是做拼接 ~字符串格式化 ~%s %d %f ~str.format() 字符串格式转换 name = 'hansen' age = 18 # hansen 的年龄为18 # print(name, '的年龄为', age, sep='') '''%s--str %d--int %f--float ''' print('%s的年龄为%d' % (name, age)) # 需要考虑数据类型,较为麻烦 #format print('{}的年龄为{}'.format(name,age)) # 括号内容与format里面要一一对应 print('{1}的年龄为{0}'.format(age,name)) # 写反了,利用索引(a0,n1) #f‘’ print(f'{name}的年龄为{age}') # f格式可直接填入,但对版本有要求需在python3.6.4以上 字符串的方法 s = 'hello hello pyhton' # 创建字符串对象 print(s.find('e')) # 查找e字符的下标,查找最小的下标 # s.rfind--从右边开始查找的下标方式 # 如果没有查找到,则返回-1,并不会报错 print(s.index('b')) # ValueError: substring not found,找不到会报错 # count,计数 (算个数) print(s.count('o')) # 计算o这个字符的个数 print(s.count('b')) # 若查找不到则返回0 # replace print(s.replace('hello', 'chong', 1)) # 默认全部替换 # 旧字符 #新字符 count--指定替换次数 # split() print(s.split(' ')) # 以空格座位分隔符的标志,空格就消失了,返回的是列表 # starswith() endswith() print(s.startswith('h')) #用以判断是否以h开头,True print(s.endswith('on')) # .txt .xls .doc 判断是否以on结尾 也可以判断文件类型 #s.lower--字符串全部转为小写 s.upper--字符串全部转化为大写 用法一致 name = input() if name.lower() == 'yes': print(name) print('Yes') #strip s = '@he@llo@'#hello print(s.strip('@')) #只能删除左右的字符 # isalpha,isdigit,isalnum s = 'abc3' print(s.isalpha()) #判断是否全为字符 print(s.isdigit()) #判断是否全为数字 print(s.isalnum()) #判断是否全为数字或者字母,不存在特殊字符,返回值均为bool #join s = ['h','e','l','l','o'] print(''.join(s)) #将序列中的元素以指定字符连接生成一个新的字符串 s = 'hello o o python' li = s.split(' ') #以空格为分隔符,形成列表 li[2] = 'beautiful' #将下标为2的字符进行替换 print(' '.join(li)) #形成新的字符串 num = 1234 print('-'.join(num)) # iterable,里面填的参数只能是可迭代的对象,可以单独一个一个取出,可以用下标索引 # 对list、tuple、dict、set、str等类型的数据使用for...in...的循环语法从其中依次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代。 # 把可以通过for...in...这类语句迭代读取一条数据供我们使用的对象称之为可迭代对象(Iterable)。 num1 = '1234' print('-'.join(num1)) #1-2-3-4 字节的创建 bt_1 = b'abc'#创建字节 print(type(bt_1)) bt_2 = bytes('abc', encodings='utf-8') print(bt_2) bt_1 = b'abc' print((bt_1[0])) #bytes-->str s = bt_1.decode() print(s[0]) #字符转字节 s = 'hello' bt_1 = s.encode() print(bt_1) print(bt_1[0])#字节 s = 'python 大神' print(s.encode()) # \x加十六进制的形式呈现 str-->bytes s = b'python \xe5\xa4\xa7\xe7\xa5\x9e' #字节转字符 print(s.decode()) #bytes-->str 列表 ~列表的使用 li = [] print(type(li)) li = ['wx',20,180.3,True,20] print(li) # list(iterable) iterable--可迭代对象,可从序列中一个个取出 li = list('123')#-->可直接用list创建列表 print(li) # 列表的使用 #从0开始,顺序取值 li = [1,2,3] # print(li[0]) #1 li[0] = 'a' # 可通过下标取值直接更改字符,列表是可变的,可以进行修改,直接取值赋值 print(li) #['a', 2, 3] li_3 = list('12344567') #删除 del li_3 #删除了整个类别 print(li_3) #name 'li_3' is not defined #remove,直接删除是值 li_3.remove('4') # 如果有相同的,删除的是第一个 print(li_3) #pop li_3.pop() # 默认删除最后一个,如果传入下标,则根据下标去删除 print(li_3) ~列表的操作 li1 = [1,2,3] li2 = [4,5,6] print(li1 + li2) #5,7,9 ,列表的相加就是列表做拼接 #列表与列表之间不能相乘,相减,相除 #print(li1 * 3) #乘以几,里面重复的元素就是几个 # #成员运算符 li = [1,[2,3],4] print(2 in li[1]) li = list('123') print(len(li)) # 返回列表的长度,即列表元素的个数 print(max(li)) # 最大值 print(min(li)) # 最小值 li = [-1,3,6,2,7,8] #从小到大 li.sort() print(li) #[1, 2, 3, 6, 7, 8] #从大到小 li.reverse() #[8, 7, 6, 3, 2, 1],先排序,再将结果进行反转(reverse) print(li) li.sort(reverse=False) #可以通过直接reverse进行反转reverse=False li = [1,2,3,4,5,6,7,8] print(li[1:4:1]) #[开始的下标:结束的下标:步长],范围左闭右开 (1,2,3) print(li[1::2])#[2, 4, 6, 8] li = [1,[2,3],4] l = li[1] print(l[1])#可以通过重新赋值进行取值 print(li[1][1])#也可以一步到位取值