- 数据类型内置方法理论
- 整型相关操作
- 浮点型相关操作
- 字符串相关操作
- 列表相关操作
数据类型内置方法理论
| 我们之前学习的每一种数据类型本身都含有一系列的操作方法,内置方法是其中最多的(自带的功能) |
| |
| 在python中数据类型调用内置方法的统一句式为>>>:句点符 |
| 'jason'.字符串内置方法 |
| 绑定字符串的变量名.字符串内置方法 |
| str.字符串内置方法 |
ps:数据类型的内置方法比较的多 想要掌握,不可以靠死记硬背 更多时候靠的是孰能生巧.
整形内置方法与操作 int
| 1.类型转换(将其他类型数据转换成整形) |
| int(其他数据类型) |
| ps:浮点型可以直接转 字符串必须满足内部是纯数字才可以 |
| 2.进制数转换 |
| 十进制转换其他进制 |
| 0b二进制缩写 print(bin(100)) |
| 0x八进制缩写 print(oct(100)) |
| 0x十六进制缩写 print(hex(100)) |
| ''' |
| 数字的开头如果是0b则为二进制 0o则为八进制 0x则为十六进制 |
| ''' |
| 其他进制转十进制 |
| print(int(0b1100100)) |
| print(int(0o144)) |
| print(int(0x64)) |
| |
| print(int("0b1100100", 2)) |
| print(int("0o144", 8)) |
| print(int("0x64", 16)) |
| 3.python自身对数字的敏感度较低(精确度低) |
| python这门语言其实不厉害 主要是背后有大佬 |
| 如果需要进准的计算需要借助于模块numpy..... |
Float浮点型内置方法与操作
| 1.类型转换 |
| float(其他数据类型) |
| 字符串里面可以允许出现一个小数点 其他必须是纯数字 |
| |
| 2.python自身对数字的敏感度较低(精确度低) |
| python这门语言其实不厉害 主要是背后有大佬 |
| 如果需要进准的计算需要借助于模块numpy..... |
str 字符串内置方法与操作
| 1.类型转换 |
| str(其他类型数据) |
| ps:可以转换任意数据类型(只需要在后面加引号即可) |
| 2.必须要掌握的方法 |
| 2.1.索引取值(其实位置0开始 超出范围直接报错) |
| s1 = ('hello world!') |
| print(s1[0]) |
| print(s1[-1]) |
| |
| 2.2.切片操作 |
| print(s1[1:5]) |
| print(s1[-1:-5]) |
| print(s1[-5:-1]) |

| 2.3. 修改切片方向 |
| print(s1[1:5:1]) |
| print(s1[1:5:2]) |
| print(s1[-1:-5:-1]) |
| |
| print(s1[:]) |
| print(s1[2:]) |
| print(s1[:5]) |
| print(s1[::2]) |
| |
| 2.4.统计字符串中字符的个数 |
| print(len(s1)) |
| |
| 2.5.移除字符串首尾指定的字符 |
| username = input('username>>>:').strip() |
| |
| |
| if username == 'wei': |
| print('登陆成功') |
| |
| res = ' jason ' |
| print(len(res)) |
| print(len(res.strip())) |
| |
| res1 = '$$wei$$' |
| print(res1.strip('$')) |
| print(res1.lstrip('$')) |
| print(res1.rstrip('$')) |
| |
| 2.6.切割字符串中指定的字符 |
| res = 'jason|123|read' |
| print(res.split('|')) |
| |
| |
| |
| name, password, hobby = res.split('|') |
| print(res.split('|', maxsplit=1)) |
| |
| print(res.rsplit('|',maxsplit=1)) |
| |
| resplit:从右到左 |
| |
| 2.7.字符串格式化输出 |
| |
| format玩法1:等价于占位符 |
| res = 'my name is {} my age is {}'.format('wei', 123) |
| print(res) |
| format玩法2:索引取值并支持反复使用 |
| res = 'my name is {0} my age is {1} {0} {0} {1}'.format('jason', 123) |
| print(res) |
| format玩法3:占位符见名知意 |
| res = 'my name is {name1} my age is {age1}'.format(name1='jason', age1=123) |
| print(res) |
| format玩法4:推荐使用(******* 给鸡哥拉满!!!!!!) |
| name = input('username>>>:') |
| age = input('age>>>:') |
| res = f'my name is {name} my age is {age}' |
| print(res) |
| |
| |
| 3.字符串 |
| 1.大小写相关 |
| res = 'hElLO WorlD 666' |
| print(res.upper()) |
| print(res.lower()) |
| ''' |
| 图片验证码:生成没有大小写统一的验证码 展示给用户看 |
| 获取用户输入的验证码 将用户输入的验证码和当初产生的验证码统一转大写或者小写再比对 |
| ''' |
| code = 'zBcqD1' |
| print('请输入图中的验证码的内容',code) |
| cs_code = input('请输入验证码>>>:').strip() |
| if cs_code.upper() == code.upper(): |
| print('验证码正确') |

| 3.1 判断字符串中的大小写 |
| res = 'hello world' |
| print(res.isupper()) |
| print(res.islower()) |
| |
| 3.2 判断字符串是否是纯数字 |
| res = '' |
| print(res.isdigit()) |
| guess_age = input('guess_age>>>:').strip() |
| if guess_age.isdigit(): |
| guess_age = int(guess_age) |
| print('年龄', guess_age) |
| else: |
| print('代笔!年龄都不知道怎么输入啊??')) |
| |
| 3.3替换字符串中指定的内容 |
| res = 'my name is jason jason jason jason jason' |
| print(res.replace('jason', '你想要输入的')) |
| |
| print(res.replace('jason', 'tonySB', 1)) |
| |
| |
| 3.4.字符串的拼接 |
| ss1 = 'hello' |
| ss2 = 'world' |
| print(ss1 + '$$$' + ss2) |
| print(ss1 * 10) |
| |
| print('|'.join(['jason', '123', 'read', 'JDB'])) |
| print('|'.join(['jason', 123])) |
| |
| 3.5 统计指定字符出现的次数 |
| res = 'hello world' |
| print(res.count('l')) |
| |
| 3.6 判断字符串的开头或者结尾 |
| res = 'jason say hello' |
| res = 'jason say hello' |
| print(res.startswith('jason')) |
| print(res.startswith('j')) |
| print(res.startswith('jas')) |
| print(res.startswith('a')) |
| print(res.startswith('son')) |
| print(res.startswith('say')) |
| print(res.endswith('o')) |
| print(res.endswith('llo')) |
| print(res.endswith('hello')) |
| 3.7.其他方法补充 |
| res = 'helLO wORld hELlo worLD' |
| print(res.title()) |
| print(res.capitalize()) |
| print(res.swapcase()) |
| print(res.index('O')) |
| print(res.find('O') |
| print(res.index('c')) |
| print(res.find('c')) |
| print(res.find('LO')) |
列表内置方法及操作
| 1. 类型转换 |
| list(其他数据类型) |
| ps:能够被for循环的数据类型都可以转成列表 |
| print(list('hello world')) |
| |
| print(list({'name': 'jason', 'pwd': 123})) |
| |
| print(list((1, 2, 3, 4))) |
| print(list({1, 2, 3, 4, 5})) |
| |
| 2.需要掌握的方法 |
| l1 = [111, 222, 333, 444, 555, 666, 777, 888] |
| 1.索引取值(正负数) |
| print(l1[0]) |
| print(l1[-1]) |
| 2.切片操作 与字符串讲解操作一致 |
| print(l1[0:5]) |
| print(l1[:]) |
| 3.间隔数 方向 与字符串讲解操作一致 |
| print(l1[::-1]) |
| 4.统计列表中数据值的个数 |
| print(len(l1)) |
| 5.数据值修改 |
| l1[0] = 123 |
| print(l1) |
| 6.列表添加数据值 |
| 方式1:尾部追加数据值 |
| l1.append('干饭') |
| print(l1) |
| l1.append(['jason', 'kevin', 'jerry']) |
| print(l1) |
| 方式2:任意位置插入数据值 |
| l1.insert(0, 'jason') |
| print(l1) |
| l1.insert(1, [11, 22, 33, 44]) 在1位牵引值添加列表 |
| print(l1) |
| 方式3:扩展列表 合并列表 |
| ll1 = [11, 22, 33] |
| ll2 = [44, 55, 66] |
| print(ll1 + ll2) |
| ll1.extend(ll2) |
| |
| print(ll1) |
| for i in ll2: |
| ll1.append(i) |
| print(ll1) |
| |
| 7.删除列表数据 |
| 方式1:通用的删除关键字del |
| del l1[0] |
| print(l1) |
| 方式2:remove |
| l1.remove(444) |
| print(l1) |
| 方式3:pop |
| ll1 = [111, 222, 333, 444, 555, 666] |
| ll1.pop(3) |
| print(ll1) |
| ll1.pop() |
| print(ll1) |
| res = ll1.pop(3) |
| print(res) |
| res = ll1.remove(444) |
| print(res1) |
| 8.排序 |
| ss = [54, 99, 55, 76, 12, 43, 76, 88, 99, 100, 33] |
| ss.sort() |
| print(ss) |
| ss.sort(reverse=True) |
| |
| print(ss) |
| |
| 9.统计列表中某个数据值出现的次数 |
| print(l1.count(111)) |
| 10.颠倒列表顺序 |
| ss.reverse() |
| print(ss) |
可变类型与不可变类型
| s1 = '$$jason$$' |
| l1 = [11, 22, 33 ] |
| res = s1.strip('$') |
| print(s1) |
| '''字符串在调用内置方法之后并不会修改自己 而是产生了一个新的结果 |
| 如何查看调用方法之后有没有新的结果 可以在调用该方法的代码左侧添加变量名和赋值符号 |
| res = s1.strip('$') |
| ''' |
| print(s1.strip('$')) |
| |
| ret = l1.append(44) |
| print(l1) |
| print(ret) |
| '''列表在调用内置方法之后修改的就是自身 并没有产生一个新的结果''' |
| |
| 可变类型:值改变 内存地址不变 |
| l1 = [11, 22, 33] |
| print(l1) |
| print(id(l1)) |
| l1.append(44) |
| print(l1) |
| print(id(l1)) |
| |
| 不可变类型:值改变 内存地址肯定变 |
| res = '$$hello world$$' |
| print(res) |
| print(id(res)) |
| res1 = res.strip('$') |
| print(res1) |
| print(id(res1)) |
今日作业
| 1.基于字符串充当数据库完成用户登录(基础练习) |
| ata_source = 'jason|123' |
| name, pwd = data_source.split('|') |
| name1 = input('输入你的名字>>>:').strip() |
| pwd1 = input('请输入你的密码>>>:') |
| if pwd1.isdigit(): |
| if name == name1 and pwd1 == pwd: |
| print('登录成功') |
| else: |
| print('登陆失败') |
| else: |
| print('请输入数字!') |
| 2.基于列表充当数据库完成用户登录(拔高练习) |
| data_source = ['jason|123', 'kevin|321','oscar|222'] |
| 3.利用列表编写一个员工姓名管理系统 |
| 输入1执行添加用户名功能 |
| 输入2执行查看所有用户名功能 |
| 输入3执行删除指定用户名功能 |
| '''分析 用户输入的不同 可以执行不同的代码''' |
| ps: 思考如何让程序循环起来并且可以根据不同指令执行不同操作 |
| 提示: 循环结构 + 分支结构 |
| |
| admin = [] |
| while True: |
| print('''添加用户请扣1 |
| 查看用户请扣2 |
| 删除用户请扣3 |
| 退出请按4 |
| ''') |
| add = input('请输入>>>:') |
| if add == '1': |
| admin1 = input('输入你要添加的用户>>>:') |
| admin.append(admin1) |
| print('添加成功') |
| elif add == '2': |
| for i in admin: |
| print(i) |
| elif add == '3': |
| admin2 = input('你要删除谁>>>:') |
| if admin2 in admin: |
| admin.remove(admin2) |
| print('删除成功') |
| else: |
| print('没有此用户') |
| elif add == '4': |
| print('886') |
| break |
| else: |
| print('输入错误,请重新输入') |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)