字符串内置方法
1.移除字符串首尾指定字符,可以选择方向 strip(除去) lstrip rstrip
s1 = '$$$jason$$$' print(s1.strip('$')) #jason print(s1.lstrip('$')) #jason$$$ 左边删掉 print(s1.rstrip('$')) # $$$jason 右边删掉
2.大小写 lower(降低) upper(升高) islower isupper
s2 = 'JaSoN666Sb' print(s2.lower()) # 将所有的英文字母变为小写 jason666sb print(s2.upper()) # 将所有的英文字母变为大写 JASON666SB print(s2.islower()) # 判断字符串中所有的英文字母是否是纯小写 结果是布尔值 # print(s2.isupper()) # 判断字符串中所有的英文字母是否是纯大写 结果是布尔值
一般可以用于图片验证码
code = 'JaSon6' print('这是返回给用户的验证码:%s' % code) user_code = input('请输入验证码>>>:').strip() #防止空格 if code.lower() == user_code.lower(): #忽略大小写 print('验证码正确')
3.判断字符串开头或结尾是否是指定字符 startswith (开始于) endswith(结束于)
s3 = 'jason kevin jason tony 666' print(s3.startswith('j')) # True print(s3.startswith('jason')) # True print(s3.startswith('tony')) # False print(s3.endswith('6')) # True print(s3.endswith('666')) # True #注意中间都有个's' print(s3.endswith('jason')) # False
4.格式化输出 format(格式化)
方式1 占位符:%s %d
方法2 format方法>>>四种玩法
玩法一:占位符,用{}占位
print('my name is {} my age is {}'.format('jason', 18))
玩法二:索引取值,可以重复使用
print('my name is {0} {0} my age is {1} {0}'.format('jason', 18))
玩法三:指名道姓,可以重复使用
print('my name is {name} {name} my age is {age}'.format(name='jason', age = 18')) #注意format后面不是字典,而是赋值
玩法四:直接使用
name = 'jason' age = 18 print(f'my name is {name} my age is {age} {name} {age}') #前面一定要加个f
注意:以上玩法就记住第四种即可,其他作为了解,还有%s的方法记住就够了
5.拼接字符串 join(加入)
s1 = '少壮不努力 老大徒伤悲' s2 = '年少不努力 枉为少年人' print(s1 + s2) # 如果字符串很大 加号效率较低 print(s1 * 10) # 重复次数(横向) print('|'.join(s1)) #少|壮|不|努|力| |老|大|徒|伤|悲 注意中间是点不是逗号 print('$'.join(['jason', 'kevin', 'justin', 'tony'])) #jason$kevin$justin$tony '''join方法相当于是将括号内的元素进行for循环''' # l1 = [11, 'jason', 'kevin'] # print('|'.join(l1)) # join的元素必须都是字符串才可以 否则报错 这里的11就不可以
6.替换字符串中指定字符 replace(替换)
s6 = 'jason is DSB DSB DSB DSB jason jason jason' 将jason替换成老刘 print(s6.replace('jason', '老刘')) # 默认一次性替换所有 指定替换的个数 print(s6.replace('jason', '老刘', 2)) # 还可以通过数字控制替换的个数 从左往右 #replace(需要替换掉的字符串,替换成的字符串,从左往右替换的个数)
7.判断字符串是否是纯数字 digit(纯数字)
s7 = 'jason123' print(s7.isdigit()) # False print('123'.isdigit()) # True print('123.21'.isdigit()) # False 可以用在日常生活中的分数纯数字输入 score = input('score>>>:') if score.isdigit(): score = int(score) #这样整型就不会出错 else: print('你他喵的能不能好好写')
了解操作
1.指定字符对应的索引值 find(寻找) index(索引)
s1 = 'jason justin kevin tony' # print(s1.find('s')) # 从左往右查找 查找一个就结束 # print(s1.find('k', 1, 9)) # -1 意思是没有 找不到 从1到9的字符串范围去找 # print(s1.index('s')) # print(s1.index('k', 1, 9)) # 找不到直接报错 不推荐使用
2.文本位置改变 center(居中) ljust (左对齐) rjust(右对齐 zfill(0填充)
name = 'tony' print(name.center(30, '-')) # -------------tony------------- print(name.ljust(30, '*')) # tony************************** print(name.rjust(30, '$')) # $$$$$$$$$$$$$$$$$$$$$$$$$$tony print(name.zfill(50)) # zero0000000000000000000000000000000000000000000000tony
3.特殊符号 (\t同行空 \n换行)
print('ja\tson\nke\avin') #其中 \t表示同行间隔 \n表示换行 \a不常用,一个表情 '''如果想取消它们的特殊含义 可以在字符串的前面加一个字母r''' print(r'ja\tson\nke\avin')
4.captalize(就第一个首字母大写) swapcase(大小写翻转) title(每个单词首字母大写)
4.1 captalize:首字母大写 message = 'hello everyone nice to meet you!' message.capitalize() # Hello everyone nice to meet you! 4.2 swapcase:大小写翻转 message1 = 'Hi girl, I want make friends with you!' message1.swapcase() # hI GIRL, i WANT MAKE FRIENDS WITH YOU! 4.3 title:每个单词的首字母大写 msg = 'dear my friend i miss you very much' msg.title() # Dear My Friend I Miss You Very Much
列表内置方法
1.类型转换(字符串、列表、字典、元祖、集合都可以转化成列表类型)
print(list(11)) # 整型不行 print(list(11.11)) # 浮点型不行 print(list('jason')) # ['j', 'a', 's', 'o', 'n'] 字符串可以 print(list({'name': 'jason', 'pwd': 123})) # ['name', 'pwd'] 字典可以 print(list((11,22,33,44,55))) # [11, 22, 33, 44, 55] 元祖可以 print(list({1, 2, 3, 4, 5})) # [1, 2, 3, 4, 5] 集合可以 print(list(True)) #布尔值不可以
2.常见操作
name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry']
(1)索引取值
print(name_list[0]) #jason print(name_list[-1]) #jerry
(2)切片操作(顾头不顾尾)
print(name_list[1:4]) # ['kevin', 'tony', 'tom'] print(name_list[-4:-1]) # ['kevin', 'tony', 'tom'] print(name_list[-1:-4:-1]) # ['jerry', 'tom', 'tony'] # 正常从小到大,前面两个数表示索引范围,最后一个为步长
(3)间隔 (其实就是步长)
print(name_list[0:4:1]) # ['jason', 'kevin', 'tony', 'tom'] print(name_list[0:4:2]) # ['jason', 'tony'] print(name_list[-1:-4:-1]) # ['jerry', 'tom', 'tony']
(4)统计列表元素个数 len()
print(len(name_list)) # 5
(5)成员运算(最小判断单位是元素,而不是元素里面的单个字符)
print('j' in name_list) # False print('jason' in name_list) # True
(6)列表添加元素 append (添加较死板) insert(插入单个元素) extend(添加灵活,相当于for+append循环)
6.1.尾部追加'单个'元素 name_list.append('小李') print(name_list) #['jason', 'kevin', 'tony', 'tom', 'jerry', '小李'] name_list.append([11, 22, 33, 44]) print(name_list) #['jason', 'kevin', 'tony', 'tom', 'jerry', [11, 22, 33, 44]] 6.2.指定位置插入'单个'元素 name_list.insert(0, 123) #[123, 'jason', 'kevin', 'tony', 'tom', 'jerry'] name_list.insert(1, [11, 22, 33]) print(name_list) #['jason', [11, 22, 33], 'kevin', 'tony', 'tom', 'jerry'] 6.3.合并列表 name_list.extend([11, 22, 33, 44, 55]) print(name_list) #['jason', 'kevin', 'tony', 'tom', 'jerry', 11, 22, 33, 44, 55] '''extend其实可以看成是for循环+append''' for i in [11, 22, 33, 44, 55]: name_list.append(i) print(name_list) #最终结果['jason', 'kevin', 'tony', 'tom', 'jerry', 11, 22, 33, 44, 55] 或者 name_list += [11, 22, 33, 44, 55] print(name_list) #但加号的效率不高
7.删除元素 del(删除) remove(移动) pop(删除前还可以再用一次,可以叫延迟删除)
7.1 通用的删除方式 del name_list[0] print(name_list) #['kevin', 'tony', 'tom', 'jerry'] 7.2 就地删除 # 指名道姓的直接删除某个元素 print(name_list.remove('jerry')) # None jerry这个位置的数据为空 print(name_list) #['jason', 'kevin', 'tony', 'tom'] 7.3 延迟删除 print(name_list.pop()) # 默认是尾部弹出 jerry print(name_list) #['jason', 'kevin', 'tony', 'tom'] print(name_list.pop(2)) # 还可以指定索引值 tony ,不会立马为空 print(name_list) #['jason', 'kevin', 'tom', 'jerry']
8.修改列表元素(很简单,直接赋值就可以)
print(id(name_list[0])) # 2614038082368 name_list[0] = 'jasonDSB' print(id(name_list[0])) # 2614038926320 print(name_list) #['jasonDSB', 'kevin', 'tony', 'tom', 'jerry'] #注意:列表中索引0的位置的地址已经变了,但是整个列表的索引地址没有变
9.排序 sort(分类)表升序 sort(reverse = True)表降序
ss = [44, 77, 99, 11, 22, 33, 88, 66] ss.sort() # 默认是升序 print(ss) # [11, 22, 33, 44, 66, 77, 88, 99] ss.sort(reverse=True) # 可以修改尾降序 print(ss) # [99, 88, 77, 66, 44, 33, 22, 11]
10.翻转 reverse(翻转、颠倒)
ss = [44, 77, 99, 11, 22, 33, 88, 66] ss.reverse() # 前后颠倒 print(ss)
11.比较运算
s1 = [11, 22, 33] s2 = [1, 2, 3, 4, 5, 6, 7, 8] print(s1 > s2) # True """列表在做比较的时候 其实比的是对应索引位置上的元素""" s1 = ['A', 'B', 'C'] # A>>>65 s2 = ['a'] # a>>>97 print(s1 > s2) # False ss = [44, 77, 99, 11, 22, 33, 88, 66] print(ss.index(99)) #2(位置在第2个)
12.统计列表中某个元素出现的次数 count(计数)
l1 = [11, 22, 33, 44, 33, 22, 11, 22, 11, 22, 33, 22, 33, 44, 55, 44, 33] print(l1.count(11)) # 统计元素11出现的次数 3
13.清空列表 clear
l1.clear() # 清空列表 print(l1)
可变类型与不可变类型
可变类型:列表
值改变 内存地址不变 修改的是本身
不可变类型 :字符串
值改变 内存地址肯定遍 修改过程产生了新的值
如何查看内存地址? id()
s2 = [1, 2, 3] print(id(s2)) # 2171184953160 s2.append(11111111) print(id(s2)) # 2171184953160 列表地址不变 s1 = ' jason ' print(id(s1)) #2093544712240 res = s1.strip() print(res) print(s1, id(s1)) #2093544712240 地址不变,改变的是s1.strip而不是s1,所以s1始终地址一样
队列与堆栈
队列
先进先出 eg:超市排队结账 符合队列的特征
new_list = [] 先进 new_list.append(111) new_list.append(222) new_list.append(333) 先出 for i in new_list: print(i) print(new_list.pop(0)) print(new_list.pop(0)) print(new_list.pop(0))
堆栈
先进后出 eg:叠衣服 符合堆栈的特征
new_list = [] 先进 new_list.append(111) new_list.append(222) new_list.append(333) 先出 for i in new_list: print(i) print(new_list.pop(0)) #不输入,默认从尾部取出 print(new_list.pop(0)) print(new_list.pop(0))
标签:11,内置,jason,name,list,tony,print,方法 From: https://www.cnblogs.com/Milk1/p/17488965.html