作业讲解
| 1.计算1-100所有的数之和 |
| all_num = 0 |
| for i in range(1, 101): |
| all_num += i |
| print(all_num) |
| |
| 2.判断列表中数字2出现的次数 |
| l1 = [11,2,3,2,2,1,2,1,2,3,2,3,2,3,4,3,2,3,2,2,2,2,3,2] |
| |
| count_num = 0 |
| |
| for i in l1: |
| |
| if i == 2: |
| count_num += 1 |
| |
| print(count_num) |
| |
| 3.编写代码自动生成所有页网址(注意总共多少页) |
| https://movie.douban.com/top250?start=0&filter= |
| https://movie.douban.com/top250?start=25&filter= |
| https://movie.douban.com/top250?start=50&filter= |
| |
| base_url = 'https://movie.douban.com/top250?start=%s&filter=' |
| for i in range(0, 250, 25): |
| print(base_url % i) |
| |
| 4.编写代码打印出下列图形(ps:for循环嵌套) |
| ***** |
| ***** |
| ***** |
| ***** |
| for i in range(4): |
| for j in range(5): |
| print('*', end='') |
| print() |
| ''' |
| 补充debug调试模式(程序员后期找bug必备工具) |
| ''' |
一:数据类型内置方法理论
- 简介:内置方法可以简单的理解成是每个数据类型自带的功能(每个人不同的特长)
- 使用数据类型的内置方法同意采用句点符:数据类型.方法名()
| eg: |
| 1.'jason'.字符串内置方法 |
| 2.绑定字符串的变量名.字符串内置方法 |
| 3.也可以使用关键字: |
| eg: |
| str.字符串内置方法 |
| 注意:数据类型的内置方法比较的多 主要是熟能生巧 |
二:整型内置方法与操作
- 1.概念:整型就是整数,主要用于计算,没有内置方法
- 2.关键字:int
类型转换(将其他数据类型转换成整型)
- 3.类型转换(将其他数据类型转换成整型)
int(其他数据类型)
注意:浮点型可以直接转 字符串必须满足内部是纯数字才可以
进制数转换
- 4.进制数转换
- 进制:二进制、八进制、十进制、十六进制
- 十进制转其他进制:
| bin():将十进制转二进制 0b1100100 0b是二进制数的标识 |
| oct():将十进制转八进制 0o144 0o是八进制数的标识 |
| hex():将十进制转十六进制 0x64 0x是十六进制数的标识 |
| print(bin(100)) |
| print(oct(100)) |
| print(hex(100)) |
| 自动识别 |
| print(int(0b1100100)) |
| print(int(0o144)) |
| print(int(0x64)) |
| 人为指定 |
| print(int("0b1100100", 2)) |
| print(int("0o144", 8)) |
| print(int("0x64", 16)) |

注意:python自身对数字的敏感度较低(精确度低)如果需要精准的计算需要借助于模块numpy....
三:浮点型内置方法与操作
类型转换
| res = float(11) |
| res = float('11') |
| res = float('11.11') |
| res = float('1.1.1.1.1') |
| res = float('abc') |
| print(res,type(res)) |

注意:python自身对数字的敏感度较低(精确度低)如果需要精准的计算需要借助于模块numpy...
四:字符串内置方法与操作
类型转换
| res = str(11) |
| print(res,type(res)) |
| res1 = str(11.11) |
| print(res1,type(res1)) |
| res2 = str('hello') |
| print(res2,type(res2)) |
| res3 = str([1,2,3,4]) |
| print(res3,type(res3)) |
| res4 = str({'name':'jason',}) |
| print(res4,type(res4)) |
| res5 = str((1,2,3,4,5)) |
| print(res5,type(res5)) |
| res6 = str({1,2,3,4,5}) |
| print(res6,type(res6)) |
| res7 = str(True) |
| print(res7,type(res7)) |

字符串内置方法的实际操作
| 索引取值:单个字符,支持负数 |
| s1 = 'hello world' |
| |
| print(s1[0]) |
| print(s1[-1]) |
| |
| print(s1[1:5]) |
| print(s1[-1:-5]) |
| print(s1[-5:-1]) |
| |
| 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]) |

| |
| username = input('username>>>:').strip() |
| |
| if username == 'jason': |
| print('登录成功') |
| |
| res = ' jason ' |
| print(len(res)) |
| print(len(res.strip())) |
| res1 = '$$jason$$' |
| print(res1.strip('$')) |
| print(res1.lstrip('$')) |
| print(res1.rstrip('$')) |
| res1 = '$$jas$on$$' |

| |
| res = 'jason|123|read' |
| print(res.split('|')) |
| name, pwd, hobby = res.split('|') |
| print(res.split('|', maxsplit=1)) |
| print(res.rsplit('|', maxsplit=1)) |

| |
| |
| res = 'my name is {} my age is {}'.format('jason', 123) |
| print(res) |
| |
| res = 'my name is {0} my age is {1}'.format('jason', 123) |
| print(res) |
| res = 'my name is {0} my age is {1} {0} {0} {1}'.format('jason', 123) |
| print(res) |
| |
| res = 'my name is {name} my age is {age}'.format(name= 'jason', age=123) |
| print(res) |
| res = 'my name is {name} my age is {age} {name} {age} {name} '.format(name= 'jason', age=123) |
| print(res) |
| |
| name = input('username>>>:') |
| age = input('age>>>:') |
| res = f'my name is {name} my age is {age}' |
| print(res) |

| |
| res = 'hElLO WorlD 666' |
| print(res.upper()) |
| print(res.lower()) |
| |
| '''图片验证码:生成没有大小写统一的验证码 展示给用户看 |
| 获取用户输入的验证码 将用户输入的验证码和当初产生的验证码统一转大写或者小写再比对 |
| ''' |
| code = '8Ja6Cc' |
| print('展示给用户看的图片验证码, code') |
| confirm_code =input('请输入验证码').strip() |
| if confirm_code.upper() == code.upper(): |
| print('验证码正确') |
| |
| res = 'hello world' |
| print(res.isupper()) |
| print(res.islower()) |

| |
| res = 'jason' |
| print(res.isdigit()) |
| res = '123' |
| print(res.isdigit()) |
| eg: |
| guess_age = input('guess_age>>>:').strip() |
| if guess_age.isdigit(): |
| guess_age = int(guess_age) |
| else: |
| print('年龄都不知道怎么输吗???') |

| |
| res = 'my name is jason jason jason jason jason' |
| print(res.replace('jason', 'tony')) |
| print(res.replace('jason', 'tony', 1)) |
| |
| ss1 = 'hello' |
| ss2 = 'world' |
| print(ss1 + ss2) |
| print(ss1 + '$$$' + ss2) |
| print(ss1 * 10) |
| print('|'.join(['jason', '123', 'read', 'JDB'])) |
| print('|'.join(['jason', 123])) |

| |
| res = 'hello world' |
| print(res.count('l')) |
| |
| 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.startswith('o')) |
| print(res.startswith('llo')) |
| print(res.startswith('hello')) |

| |
| 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')) |

五:列表内置方法及操作
类型转换
- list(其他数据类型)
- 能够被for循环的数据类型都能转成列表
| print(list('hello')) |
| print(list({'name': 'jason', 'pwd': 123})) |
| print(list((1, 2, 3, 4,))) |
| print(list({1, 2, 3, 4, 5})) |
列表内置方法的实际操作
| l1 = [111, 222, 333, 444, 555, 666, 777, 888] |
| |
| print(l1[0]) |
| print(l1[-1]) |
| |
| print(l1[0:5]) |
| print(l1[:]) |
| |
| print(l1[::-1]) |
| |
| print(len(l1)) |
| |
| l1[0] = 123 |
| print((l1)) |
| |
| |
| l1.append('上课') |
| print(l1) |
| l1.append(['jason', 'kevin', 'jerry']) |
| print(l1) |
| |
| l1.insert(0, 'jason') |
| print(l1) |
| l1.insert(1, [11, 22, 33, 44]) |
| print(l1) |
| |
| 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) |

| |
| |
| del l1[0] |
| print(l1) |
| |
| l1.remove(444) |
| print(l1) |
| |
| l1.pop(3) |
| print(l1) |
| l1.pop() |
| print(l1) |
| |
| res = l1.pop() |
| print(res) |
| res1 = l1.remove(444) |
| print(res1) |
| |
| ss = [54, 99, 100, 45, 87, 93, 33, 65, 90, 35, 10] |
| ss.sort() |
| print(ss) |
| ss.sort(reverse=True) |
| print(ss) |
| |
| print(l1.count(11)) |
| |
| l1.reverse() |
| print(l1) |

六:可变类型与不可变类型
可变类型:
| 可变类型:值改变 内存地址不变(列表) |
| 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)) |
| res.strip('$') |
| print(res) |
| print(id(res)) |

作业
| 1.基于字符串充当数据库完成用户登录(基础练习) |
| data_source = 'jason|123' |
| 获取用户用户名和密码 将上述数据拆分校验用户信息是否正确 |
| |
| |
| data_source = 'jason|123' |
| |
| username = input('username>>>:').strip() |
| password = input('password>>>>:').strip() |
| |
| real_name, real_pwd = data_source.split('|') |
| |
| if username == real_name and password == real_pwd: |
| print('登录成功') |
| else: |
| print('用户名或密码错误') |
| 2.基于列表充当数据库完成用户登录(拔高练习) |
| data_source = ['jason|123', 'kevin|321','oscar|222'] |
| data_source = ['jason|123', 'kevin|321', 'oscar|222'] |
| |
| username = input('username>>>:').strip() |
| password = input('password>>>>:').strip() |
| |
| for data in data_source: |
| real_name, real_pwd = data.split('|') |
| if username == real_name and password == real_pwd: |
| print('登录成功') |
| break |
| else: |
| print('用户名或密码错误') |
| |
| data_source = ['jason|123', 'kevin|321', 'oscar|222'] |
| username = input('username>>>:').strip() |
| password = input('password>>>:').strip() |
| user_data = f'{username}|{password}' |
| if user_data in data_source: |
| print('登录成功') |
| else: |
| print('用户名或密码错误') |
| |
| 3.利用列表编写一个员工姓名管理系统 |
| 输入1执行添加用户名功能 |
| 输入2执行查看所有用户名功能 |
| 输入3执行删除指定用户名功能 |
| '''分析 用户输入的不同 可以执行不同的代码''' |
| ps: 思考如何让程序循环起来并且可以根据不同指令执行不同操作 |
| 提示: 循环结构 + 分支结构 |
| |
| data_list = [] |
| |
| while True: |
| |
| print(""" |
| 1.添加用户 |
| 2.查看用户 |
| 3.删除用户 |
| """) |
| |
| choice_num = input('请输入您想要执行的功能编号>>>:').strip() |
| |
| if choice_num == '1': |
| |
| username = input('请输入您的用户名>>>:').strip() |
| |
| if username in data_list: |
| print('用户名已存在') |
| else: |
| |
| data_list.append(username) |
| print(f'用户名{username}添加成功') |
| elif choice_num == '2': |
| |
| for name in data_list: |
| print( |
| f""" |
| ------------user info--------- |
| 用户名:{name} |
| ------------------------------ |
| """) |
| elif choice_num == '3': |
| |
| delete_username = input('请输入您想要删除的用户名>>>:').strip() |
| |
| if delete_username in data_list: |
| data_list.remove(delete_username) |
| print(f'用户名{delete_username}删除成功') |
| else: |
| print('你个傻帽 用户名不存在 删毛线啊!!!') |
| else: |
| print('很抱歉 暂时没有您想要执行的功能编号') |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了