首页 > 其他分享 >for循环

for循环

时间:2022-09-28 16:55:06浏览次数:44  
标签:username count 用户 range 循环 print

今日内容回顾

  • 昨日作业讲解
  • while 循环知识补充
  • 流程控制之for循环

今日内容回顾详情

作业讲解

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

black_user_list = ['jamer','kevin','tony']
user_name = input('请输入你的名字>>>:')
while True:
    if user_name in black_user_list:
     print('你被拉黑了')
     break
    else:
        passworld = input('请输入你的密码>>>:')
        if user_name == 'jason' and passworld == 123 :
         print('欢迎')
        else:
         print('你的名字或者密码错误')

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

whlie循环补充说明

1.死循环
真正的死循环一旦执行,就会让CPU功耗急速上升 直到系统采取紧急措施(蓝屏,重启等)
2.嵌套及全局标志位
强调:
2.1:一个break只能结束它所在的那一层循环

2.2:有几个whlie的嵌套 想一次性 结束 就应该写几个break

2.3:如果不想反复写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循环

1.for循环能够做到的事情我whlie都可以做到 只不过for循环在一些场景下使用更简单

主要场景为:循环获取存储多个数据的数据内部数据值

实际案例:

name_list = ['jason', 'kevin', 'tony', 'oscar']  # 遍历
循环打印出列表中每一个数据值(while 索引取值>>>:超出范围会报错)
count = 0
while count < 4:
    print(name_list[count])
    count += 1
for循环:
for i in name_list: 
    print(i)

2.for循环的语法:

for 变量名 in 待遍历的数据:

for循环体代码

3.for的特点:

3.1:擅长遍历取值

3.2:不需要结束条件 自动结束(遍历执行完)

4.for循环主要遍历的数据类型有:字符串 列表 元组 字典 集合

代码实现:

 info = 'hello world'
    for i in info:
        print(i)  # 单个单个字符
   
d = {'username': 'jason', 'password': 123}
for i in d:
    print(i)  # 只有键参与遍历

5.for 循环语法结构中的变量名如何命名

5.1做到见名知意

5.2 如果遍历出来的数据值没有具体的含义 可以用 j k v等

6.for循环体代码中如果执行到break也会直接结束整个for循环

7.for循环体代码中如果执行到continue也会结束当前循环直接开始下一次循环

8.for... else....

格式如下:

for 变量名 in 待遍历的数据:
    for循环体代码
else:
    for循环体代码没有被break强制结束的情况下运行完毕之后 运行

range方法

1.range就是帮我产生一个内部含有很多数字的数据

代码实例:

for i in range(101):  # 起始位置为0 终止位置为100 
    print(i)  # [0,.......100]
 
for i in range(10, 20):  # 第一个为起始位置 第二个终止位置
    print(i)
    
for i in range(1, 20, 2):  # 第三个数为等差值 默认不写为1
    print(i)

2.range在不同版本的解释器中有不同的效果

在python2中
range()
直接产生一个列表 内部含有多个数值
xrange()
其实就是python3里面的range
在python3中
range()
类似于一个数据库 不会占用太多的内存空间

range实战案例

网络爬虫:

使用代码爬取网络上我们需要的数据

实例如下:

项目需求
	爬取所有页面的数据(博客园)
找寻规律
	https://www.cnblogs.com/
 	https://www.cnblogs.com/#p2
 	https://www.cnblogs.com/#p3
 	https://www.cnblogs.com/#p4

大胆猜测:第一页是 https://www.cnblogs.com/#p1
编写代码产生博客园文章前两百页的网址
for i in range(1,201):
     print( 'https://www.cnblogs.com/#p%s' % (i,))

标签:username,count,用户,range,循环,print
From: https://www.cnblogs.com/zjl248/p/16738694.html

相关文章