作业讲解
1.根据用户输入内容打印其权限
'''
jason --> 超级管理员
tom --> 普通管理员
jack,rain --> 业务主管
其他 --> 普通用户
'''
# 1.获取用户输入的用户名
username = input('请输入您的用户名>>>:')
# 2.判断用户名 打印不同的提示>>>:不同的条件执行不同的代码 那么需要使用分支结构
if username == 'jason':
print('超级管理员')
elif username == 'tom':
print('普通管理员')
# elif username == 'jack' or 'rain': # 错误写法
# elif username == 'jack' or username == 'rain': # 正确写法
elif username in ['jack', 'rain']: # 正确写法
print('业务主管')
else:
print('普通用户')
2.编写用户登录程序
要求:有用户黑名单 如果用户名在黑名单内 则拒绝登录
eg:black_user_list = ['jason','kevin','tony']
如果用户名是黑名单以外的用户则允许登录(判断用户名和密码>>>:自定义)
eg: oscar 123
3.编写用户登录程序
用户如果登录失败 则只能尝试三次
用户如果登录成功 则直接结束程序
# 4.定义一个计数器
count_num = 1
while True:
# 6.先判断当前尝试了几次
if count_num == 4:
print('很抱歉 您已经尝试了三次')
break
# 1.获取用户数据
username = input('username>>>:')
password = input('password>>>:')
# 2.校验数据是否正确
if username == 'jason' and password == '123':
print('登录成功')
break # 3.结束循环体代码
else:
print('用户名或密码错误')
# 5.每错误一次就让计数器自增1
count_num += 1
4.猜年龄的游戏
假设用户的真实年龄是18 编写一个猜年龄的游戏 获取用户猜测的年龄
基本要求:可以无限制猜测 每次猜错给出提示(猜大了 猜小了) 猜对则结束程序
拔高练习:每次猜测只有三次机会 一旦用完则提示用户是否继续尝试 用户通过输入n或者y来表示是否继续尝试 如果是y则继续给用户三次猜测机会 否则结束程序
# 1.先定义用户的真实年龄
real_age = 18
# 8.定义计数器
count_num = 1
# 6.添加循环结构
while True:
# 10.判断当前尝试的次数
if count_num == 4:
choice = input('您已经尝试了三次 是否继续尝试(n/y)>>>:')
# 11.判断用户输入的选择
if choice == 'y':
# 12.重置计数器
count_num = 1
else:
print('下次再来玩哟')
break
# 2.获取用户猜测的年龄
guess_age = input('你猜一猜我的年龄 好不好呀>>>:')
# 3.由于一会儿需要比较大小 所以要将用户输入的字符串年龄转成整型的年龄
guess_age = int(guess_age) # 有小bug 暂时不考虑
# 4.判断年龄是否猜测正确
if guess_age > real_age:
print('你这小伙子 真讨厌 人家有那么大吗')
# 猜测错了 计时器加一
count_num += 1
elif guess_age < real_age:
print('哎呀 你真讨厌 人家也没那么小啦')
# 猜测错了 计时器加一
count_num += 1
else:
print('你真棒 猜对了 嘿嘿嘿')
# 7.猜对了 直接结束循环
break
"""
1.先写注释(思维逻辑和想法)
2.先考虑主题功能 再考虑附加功能
"""
我的脑子不够用
while循环补充说明
1.死循环
意思是无法靠自身控制终止的循环 在编辑中 无法靠自生终止的程序 要避免这种情况如果不终止CPU会跑满100% 对CPU造成损伤
2.嵌套及全局标志位
一个break只能结束他所在的那一层循环
有几个while的嵌套 想一次性结束 就要写几个break
如果不想反复写break 可以使用全局标志位
is_flag = True
while is_flag:
username = input('username>>>:')
password = input('password>>>:')
if username == 'jason' and password == '123':
while is_flag:
cmd = input('请输入指令>>>:')
if cmd == 'q':
is_flag = False
print('正在执行指令:%s' % cmd)
else:
print('用户密码错误')'
流程控制之for循环
for循环能够做到的事情while都可以做到 只不过for循环在一些场景下使用的跟简单
一般主要的场景为:循环获取储存多个数据的数据内部数据值
实际案例:student = ['jason', 'kevin', 'tony', 'oscar']
for i in student:
print(i) '循环打印'
for循环语法结构
for 变量名 in 带遍历数据
for循环代码
for循环特点
1.擅长遍历取值
2.不需要结束条件 遍历完就可以自动结束
for循环主要的遍历的数据类型有(常见的 字符串 列表 元组 字典 集合) 'info = 'hello world'
for i in info:
print(i) # 单个单个字符
d = {'username': 'jason', 'password': 123}
for i in d:
print(i) # 只有键参与遍历'
建:冒号前面的username password
for循环语法结构中的变量名如何命名
1.看到什么意思就是什么意思
2.如果遍历出来的数据值没有具体含义 可以使用常见的
i j k v
for循环代码中如果运行到break 会直接结束整个for循环
for循环代码中如果运行到了continue也会结束当前循环并且直接开始下一次循环
for 变量名 in 待遍历的数据:
for循环代码
else:
for循环体代码没有被break强制结束的情况下运行完毕后运行
range方法
range语法:range(start, stop[,stpe]);start指的是计数起始值 默认是0 , stop指的是计数结束值, step是步长 默认为一 不可以为零
range()方法生成一段左闭右开的整数范围
简单来说就是帮我们产生一个内部含有多个数字的数值
for i in range(1001): # 起始位置为0 终止位置为1000
print(i)
for i in range(100, 200): # 第一个为起始位 第二个终止位
print(i)
for i in range(100, 200,50): 第三个 为等差数值 不写默认是1
print(i)
在python2中
range()直接产生一个列表 内部含有多个数值
xrange()其实就是python3中的range
在python3中
range() 在python3中类似于一个工厂 需要就生产
range实战案例
网络爬虫
使用代码爬取网络上我们需要的数据
项目需求
爬取所有页面数据 比如(博客园)
找寻规律
https://www.cnbloge.com/
https://www.cnbloge.com/#p2
https://www.cnbloge.com/#p3
https://www.cnbloge.com/#p4
以此类推 所以我猜测 第一页是https://www.cnbloge.com/#p1
base_url = 'https://www.cnblogs.com/#p1%s'
for i in range(1, 201):
print(base_url % i)
标签:实战,username,用户,break,range,循环,print,方法
From: https://www.cnblogs.com/lsl1/p/16739610.html