字符串、列表内置方法
字符串内置方法
1.strip
移除字符串首尾的指定字符 可以选择方向
s1 = '$$$jason$$$'
print(s1.strip('$')) # jason
print(s1.lstrip('$')) # jason$$$ left 左边
print(s1.rstrip('$')) # $$$jason right 右边
2.大小写
s2 = JaSonN666NB
print(s2.lower()) # 所有的英文字母变小写
print(s2.upper()) # 所有的英文字母变大写
print(s2.islower()) # 判断是否都是小写
print(s2.isupper()) # 判断是否都是大写
验证码
什么以前的认证码需要一模一样 大小写不能忽略 现在的验证码却可以 如何实现
code = 'JaSOn6'
print('这是返回给用户的图片验证码:%s' % code)
user_code = input('请输入验证码>>>:').strip()
if code.lower() == user_code.lower(): # 验证码忽略大小写 只需要统一转大写或者小写即可
print('验证码正确')
3.swith
判断字符串的开头或者结尾是否是指定的字符
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
print(s3.endswith('jason')) # False
4.格式化输出
1. 占位符:%s %d
2. format方法>>>:四种玩法
玩法1:跟占位符一致 使用{}占位
print('my name is {} my age is {}' format('jason', '18'))
玩法2:根据索引取值 可以反复使用
print('my name is {0} {0} {0} my age is {0} {1}'.format('jason', 18))
玩法3:根据指名道姓的方式取值
print('my name is {name} {name} my age is {age} {pd}'.format(name='jason', age=18, pd=123))
玩法4:直接使用已经出现过的变量
name = 'jason'
age = 18
print(f'my name is {name} my age is {age} {name}')
"""python官网很久以前就说推荐使用format做格式化输出 甚至说%s要被砍掉"""
5.join
拼接字符串
s1 = '三月不努力 四月变垃圾'
s2 = '年少不努力 妄为少年人'
print(s1 + s2) # 如果字符串很大 加号效率较低
print(s1 * 2) # 重复次数
print('|'.join(s1)) # 三|月|不|努|力| |四|月|变|垃|圾
print('$'.join(['jason', 'kevin', 'justin', 'tony']))
# jason$kevin$justin$tony
'''join方法相当于是将括号内的元素进行for循环'''
# l1 = [11, 'jason', 'kevin']
# print('|'.join(l1)) # join的元素必须都是字符串才可以 否则报错
6.replace
替换字符串中指定的字符
s6 = 'jason is sb sb sb jason jason'
# 将jason替换老刘
print(s6.replace('jason','老刘')) # 默认一次性替换所有
# 指定替换的个数
print(s6.replace('jason', '老刘', 2)) # 还可以通过数字控制替换的个数 从左往右
'''很多文本编辑器里面的替换功能 就可以使用replace完成'''
7.isdigit
判断字符串中是否是纯数字
s7 = 'jason123'
print(s7.isdigit()) # False
print('123'.isdigit()) # True
print('12.12'.isdigit()) # False
score = input('分数:')
if score.isdigit():
score = int(score)
else:
print('好好写')
了解操作
# 1.查找指定字符对应的索引值
# s1 = 'jason justin kevin tony'
# print(s1.find('s')) # 从左往右查找 查找一个就结束
# print(s1.find('k', 1, 9)) # -1 意思是没有 找不到
# print(s1.index('s'))
# print(s1.index('k', 1, 9)) # 找不到直接报错 不推荐使用
# 2.文本位置改变
# name = 'tony'
# print(name.center(30, '-')) # -------------tony-------------
# print(name.ljust(30, '*')) # tony**************************
# print(name.rjust(30, '$')) # $$$$$$$$$$$$$$$$$$$$$$$$$$tony
# print(name.zfill(50)) # zero 零 0000000000000000000000000000000000000000000000tony
# 3.特殊符号:斜杠与一些英文字母的组合会产生特殊的含义
# print('ja\tson\nke\avin')
'''如果想取消它们的特殊含义 可以在字符串的前面加一个字母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)) # 不行
"""
list可以转换支持for循环的数据类型
可以被for循环的数据类型
字符串 列表 字典 元组 集合
"""
2.常见操作
name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry']
1.索引取值
print(name_list[0])
print(name_list[-1])
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.统计列表中元素的个数
print(len(name_list)) # 5
5.成员运算 最小判断单位是元素不是元素里面的单个字符
print('j' in name_list) # False
print('jason' in name_list) # True
6.列表添加元素的方式
6.1.尾部追加'单个'元素
name_list.append('小李')
print(name_list)
name_list.append([11, 22, 33, 44])
print(name_list)
6.2.指定位置插入'单个'元素
name_list.insert(0, 123)
name_list.insert(2, '可不可以插个队')
name_list.insert(1, [11, 22, 33])
print(name_list)
6.3.合并列表
name_list.extend([11, 22, 33, 44, 55])
print(name_list)
'''extend其实可以看成是for循环+append'''
for i in [11, 22, 33, 44, 55]:
name_list.append(i)
print(name_list)
name_list += [11, 22, 33, 44, 55]
print(name_list) # 加号的效率不高
7.删除元素
7.1 通用的删除方式
del name_list[0]
print(name_list)
7.2 就地删除 # 指名道姓的直接删除某个元素
print(name_list.remove('jerry')) # None
print(name_list)
7.3 延迟删除
print(name_list.pop()) # 默认是尾部弹出 jerry
print(name_list)
print(name_list.pop(2)) # 还可以指定索引值 tony
print(name_list)
8.修改列表元素
print(id(name_list[0])) # 2614038082368
name_list[0] = 'jasonDSB'
print(id(name_list[0])) # 2614038926320
print(name_list)
9.排序
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.翻转
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))
12.统计列表中某个元素出现的次数
l1 = [11, 22, 33, 44, 33, 22, 11, 22, 11, 22, 33, 22, 33, 44, 55, 44, 33]
print(l1.count(11)) # 统计元素11出现的次数
l1.clear() # 清空列表
print(l1)
可变类型与不可变类型
# s1 = '$$$jason$$$'
# print(s1.strip('$')) # jason 本身并没有修改 是产生了新的结果
# print(s1) # $$$jason$$$
# s2 = [1, 2, 3]
# print(s2.extend([11, 22, 33, 44, 55])) # None 空
# print(s2) # [1, 2, 3, 11, 22, 33, 44, 55]
"""
可变类型与不可变类型
可变类型 列表
值改变 内存地址不变 修改的是本身
不可变类型 字符串
值改变 内存地址肯定遍 修改过程产生了新的值
如何查看变量的'内存地址'
"""
# s2 = [1, 2, 3]
# print(id(s2)) # 2171184953160
# s2.append(11111111)
# print(id(s2)) # 2171184953160
# s1 = ' jason '
# print(id(s1))
# res = s1.strip()
# print(res)
# print(s1, id(s1))
队列与堆栈
队列
先进先出
eg:超市排队结账 符合队列的特征
堆栈
先进后出
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))
# 堆栈
new_list = []
# 先进
new_list.append(111)
new_list.append(222)
new_list.append(333)
# 后出
print(new_list.pop())
print(new_list.pop())
print(new_list.pop())
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人