06:while条件循环、for循环

以下内容仅做自己学习使用,知识点内容来自柠檬班,转载请标记来源

@Author:木又
@File:demo1_while条件循环.py
@Time:2020/7/9 20:11
@Name:Ta Quan Ge

while 循环
语法:
while 条件:
循环体

break 强制性的跳出循环体

continue 终止当前本轮循环,开启下一轮循环 (工作中很少用)

num = int(input("请输入是否考上清华:是请输入1,否请输入2:"))
while num == 2:
    print("复读")
    num = int(input("请输入是否考上清华:是请输入1,否请输入2:"))
print("考上")  # 跳出循环
n = 1
while n < 100:       # 死循环
    print("hello python")
n = 1
while n < 100:
    print(f"这是第{n}编:Hello python")
    n = n + 1
print("结束")

登录

user = "zq"
pwd = "123456"
while True:
    username = input("请输入用户名:")
    password = input("请输入密码:")
    if user == username and password == pwd:
        print("登录成功!")
        break                 # 当成功后,跳出循环
    else:
        print("账号或密码错误!")

break 跳出循环体

continue 终止当前本轮循环,开启下一轮循环

通过循环去打印1-10,其中5不用打印
 
 n = 0
while n < 10:
    n = n +1
    if n == 5:
       pass         # 没有任何语义,占位
    else:
       print(f"这是第{n}遍", n)
n = 0
while n < 10:
    n = n +1
    if n == 5:
       continue         # 终止本次循环,执行下次循环,重新回到开始位置,执行下次循环
    else:
       print(f"这是第{n}遍", n)

=================================================================
@Author:木又
@File:demo2_for循环.py
@Time:2020/7/9 20:49
@Name:Ta Quan Ge

for 循环(遍历循环)
for 变量 in 被遍历的数据:
循环执行的代码
可以被遍历的基本数据类型:列表 字符串 元祖 字典 集合
内置函数len():获取数据的长度

li = [1, 2, 3, 4, 5, 6, 7, "a", "b"]
# print("列表的长度:", len(li))

for i in li:
    print("循环体中的代码")
    print(i)

=================================================================
@Author:木又
@File:demo3_for循环加粗样式遍历基本数据类型.py
@Time:2020/7/9 20:56
@Name:Ta Quan Ge

“”"

for循环遍历

遍历字符串

# 
s = "taquange"
for i in s:
    print(i)      
#打印结果
t
a
q
u
a
n
g
e

遍历元祖


s = (1, 2, 35, 4)
for i in s:
    print(i)
 
# 打印结果:
1
2
35
4

遍历集合(无序)

s = {1, 4, 2, 3, 45}
for i in s:  # 注:遍历出来的数据是无序的
    print(i)

#打印结果:
1
2
3
4
45

遍历字典(重点)

dic = {"a": 1, "b": 2, "c": 3, "d": "ZQ"}
 **直接遍历字典:遍历出来的是字典的key**
for i in dic:
    print(i)

 #
a
b
c
d

遍历字典的key

dic = {"a": 1, "b": 2, "c": 3, "d": "ZQ"}
for i in dic.keys():
    print(i)  

遍历字典的value

dic = {"a": 1, "b": 2, "c": 3, "d": "ZQ"}
for i in dic.values():
    print(i)

遍历字典的键值对

dic = {"a": 1, "b": 2, "c": 3, "d": "ZQ"}
for i in dic.items():
    print(i, type(i))  # 打印出来的数据类型是元祖

键和值分别遍历出来,遍历的时候单独用变量接收key和value值

for i, n in dic.items():
    print("key:", i, "value:", n)

元祖拆包

tu = ("a", 11, 9)
a, b, c = tu         # 元祖中有几个元素,就定义几个变量
print("a的值", a)  # a的值 a
print("b的值", b)  # b的值 11
print("c的值", c)  # c的值 9

=================================================================
@Author:木又
@File:demo3_for循环遍历的小案例.py
@Time:2020/7/9 21:29
@Name:Ta Quan Ge

range()

# for 循环中的break和continue

# for i in range(1, 10):
#     if i == 6:
#         continue
#     print(f"这个是第{i}遍:hello python")

批量判断数值是否大于60

li = [78, 32, 55, 77, 88, 54, 34, 39]
# 判断大于60的数值
# for i in li:
#     if i > 60:
#         print(i)

range()
range(n):默认生成一个0 ~ n-1 的整数序列,对于这个整数序列,
我们可以通过list()函数转化为列表类型的数据

range(n, m) 默认生成一个n ~ m-1 的整数序列,对于这个整数序列,
我们可以通过list()函数转化为列表类型的数据

range(n, m, k):相当于其他函数里面的for循环,n初始值 m结束值 k步长,
会生成初始值的为n,结束值为m-1,递减或者递增的整数序

打印100遍python

for i in range(100):
     print(f"这是第{i}遍python")

for i in range(1,101):
     print(f"这是第{i}遍python")

break

#for循环中的break continue
for i in range(1, 10):
    if i == 6:
        break
    print(f"这是第{i}遍python")
 print("-----------for--------------")

continue

for i in range(1, 10):
    if i == 6:
        continue
    print(f"这是第{i}遍python")
print("-----------for--------------")

================================================================
@Author:木又
@File:demo04_for循环实现注册的案例.py
@Time:2020/7/12 21:54
@Name:Ta Quan Ge

for – else:
for i in range(10):
循环体
else:
for对应的else语句,for循环正常遍历结束的时候会执行,
(如果for循环是通过break来结束循环的则不会执行对应的else)

需求:
实现一个注册的小程序代码
1.用户输入的账号id,密码pwd,再次确认密码pwd
2.判断该账号是否已经存在,返回已注册打印账号被注册
3.判断两次密码是否一致,返回打印两次密码不一致
4.上面两个判断都通过则注册成功(注册成功之后需要将账号 密码保存在列表中),否则打印对应提示

users = [{"uid": "zq", "pwd": 123456},
         {"uid": "zj", "pwd": 1234567}
         ]
id = input("请输入账号:")
pwd = input("请输入密码:")
pwd2 = input("请确认密码:")

#遍历所有的账号
for i in users:
    # 判断账号是否已经注册
    if id == i["uid"]:
        print("账号已被注册")
        break
else:
    # print("该账号可以注册")
    # 如果账号没有注册,则不会执行for循环中的break,则执行for对应的else语句
    if pwd == pwd2:
        print("注册成功!")
        # 讲输入的账号密码以字典的形式添加至user中
        users.append({"uid": id, "pwd": pwd})

    else:
        print("两次密码不一致!")

================================================================
@Author:木又
@File:work_06day.py
@Time:2020/7/13 21:11
@Name:Ta Quan Ge

1、实现剪刀石头布游戏(),提示用户输入要出的拳 :石头(1)/剪刀(2)/布(3) / 退出(4)
电脑随机出拳比较胜负,显示 用户胜、负还是平局。
运行如下图所示(提示:while循环加条件判断,做判断时建议先分析胜负的情况)
user random
1 2 1 - 2 = -1( 用胜) 1 - 3 = -2(电胜) 1 - 1 = 0
2 3 2 - 3 = -1(用胜) 2 -1 =1(电胜) 2 - 2 = 0
3 1 3 - 1 = 2 (用胜) 3-2 = 1(电胜) 3 - 3 = 0

# import random
#
# li = ["石头", "剪刀", "布", "退出"]
# while True:
#     user = int(input("请出拳(石头(1) 剪刀(2) 布(3) 退出(4):"))
#     computer = random.randint(1, 3)
#     if 1 <= user <= 3:
#         if user == computer:
#             print(f"用户输入的是:{li[user - 1]},电脑输入的是:{li[computer - 1]},平局!")
#         elif (user - computer == -1) or (user - computer == 2):
#             print(f"用户输入的是:{li[user - 1]},电脑输入的是:{li[computer - 1]},用户胜!")
#         else:
#             print(f"用户输入的是:{li[user - 1]},电脑输入的是:{li[computer - 1]},电脑胜!")
#     elif user == 4:
#         print("游戏结束")
#         break
#     else:
#         print("您输入的不是1~4之间的整数值,请重新输入!")

2、第二题
通过定义一个计算器,允许程序提示用户输入数字1,数字2,然后再提示用户选择 :
加【1】 减【2】 乘【3】 除【4】,
根据不同的选择完成不同的计算 ,然后打印结果

# li = ["加", "减", "乘", "除"]
# while True:
#     a = int(input("请输入数字1:"))
#     a1 = int(input("请输入数字2:"))
#     b = int(input("请选择运算符(加(1) 减(2) 乘(3) 除(4)): "))
#     if b == 1:
#         print(f"{a}{li[b - 1]}{a1}等于{a + a1}")
#     elif b == 2:
#         print(f"{a}{li[b - 1]}{a1}等于{a - a1}")
#     elif b == 3:
#         print(f"{a}{li[b - 1]}{a1}等于{a * a1}")
#     elif b == 4:
#         print(f"{a}{li[b - 1]}{a1}等于{a / a1}")
#     break        # 终止程序

3、第三题:请获取下面字典数据中的token,和reg_name

# data = {
#     "code": 0,
#     "msg": "OK",
#     "data": {
#         "id": 74711,
#         "leave_amount": 29600.0,
#         "mobile_phone": "13367899876",
#         "reg_name": "小柠檬666",
#         "reg_time": "2019-12-13 11:12:53.0",
#         "type": 0,
#         "token_info": {
#             "token_type": "Bearer",
#             "expires_in": "2019-12-30 22:28:57",
#             "token": "eyJhbGciOiJIUzUxMiJ9.eyJtZW1iZXJfaWQiOjc0NzExLCJleHAiOjE1Nzc3MTYxMzd9.eNMtnEWr57iJoZRf2IRsGDWm2GKj9LZc1J2SGRprAwOk7EPoJeXSjJwdh0pcVVJygHmsbh1TashWqFv1bvCVZQ"
#         }
#     },
#     "copyright": "Copyright 柠檬班 © 2017-2019 湖南省零檬信息技术有限公司 All Rights Reserved"
# }
#

# token = data["data"]["token_info"]["token"]
# print(f"token:{token}")
#
# reg_name = data["data"]["reg_name"]
# print(f"reg_name:{reg_name}")



第4题:当前有一个列表
li = [1, 21, 33, 221, 432, 121, 44, 21, 22, 44, 1, 221], 请完成如下要求!

# 1、请先去除列表中的重复元素
# li = [1, 21, 33, 221, 432, 121, 44, 21, 22, 44, 1, 221]
# li1 = set(li)
# print(list(li1))

#2、对去重后的列表进行升序排序
# li2 = list(li1)
# li2.sort()
# print(li2)

3、遍历排序后列表,将元素为偶数的元素,添加到一个新列表中

# li3 = []
# for i in li2:
#     if i % 2 == 0:
#         li3.append(i)
# print(li3)

第5题、运行程序,提示用户依次输入三个整数x, y, z,请把这三个数由小到大输出。

x = int(input("请输入一个整数x:"))
y = int(input("请输入一个整数y:"))
z = int(input("请输入一个整数z:"))

li = []
li.extend([x,y,z])
li.sort()
tu = tuple(li)
a,b,c = tu
print(f"从小到大排序为:{a} {b} {c}")

第6题、编写一个程序,使用for循环输出0 - 100(包括0和100)之间的偶数

for i in range(101):
    if i % 2 == 0:
        print(f"输出的偶数为:{i}")

第7题、当前有一个字典{“a”: 1, “b”: 22, “c”: 3, “d”: 4, “e”: 5},
请修改字典中所有键值对的值,新的值为原来的值乘10

dic = {"a": 1, "b": 22, "c": 3, "d": 4, "e": 5}
li = []
for i in dic.values():
    # print(i)
    value = i * 10
    li.append(value)
# print(li)
for l in dic.keys():
    # print(l)
    for m in li:
        dic[l] = m

print(dic)

改:(其他人的方法)

dic = {"a": 1, "b": 22, "c": 3, "d": 4, "e": 5}
for i in dic.keys():

    dic[i] = dic[i] * 10
print(dic)

改:(其他人的方法)

dict7 = {"a": 1, "b": 22, "c": 3, "d": 4, "e": 5}

print('原始字典为:', dict7)

for k, v in dict7.items():
		dict7[k] = v * 10     
print('修改后的字典为:', dict7)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值