Python3:循环嵌套语句


前言

条件语句、循环语句、嵌套语句

if while for

一、条件语句

import random

# 条件语句

"""
if...
if...else...
if...elif....else...
"""

'''
result = input('请输入(Y/N):')
if result == 'Y':
    print("Y")
elif result == 'N':
    print("N")
else:
    print("输入有误,请检查!")

print("**" * 30)
'''

# 随机数

ran = random.randint(1, 10)
print(ran)

guess = input("请输入你猜的数:")
if ran > int(guess):
    print("ran >guess")
elif ran == int(guess):
    print("恭喜你中奖了!")
elif ran < int(guess):
    print("ran <guess")
else:
    print("输入有误!")

'''
********************************************************************
                        和平精英管理平台
********************************************************************

'''

'''
阿里巴巴商家用户消费等级划分:
输入购买总金额数:
lv1: 0-5000: 随机赠送3张1-10元的优惠券
lv2: 5000-20000:2张50元的优惠券,如果充值赠送充值金额的10%
lv3: 20000以上:2张100元的优惠券,如果充值赠送充值金额的15%
'''
username = 'SanDuo'
total = 6000  # 消费总金额
re_change = int(input("输入充值金额:"))  # 充值
money = 0  # 账户金额
coupon = 0  # 优惠券总金额

if 0 < total <= 5000:
    print("恭喜你会员升级,当前等级Lv1,随机赠送3张1-10元的优惠券!")
    q1 = random.randint(1, 10)
    q2 = random.randint(1, 10)
    q3 = random.randint(1, 10)
    coupon = q1 + q2 + q3
elif 5000 < total <= 20000:
    print("恭喜你会员升级,当前等级Lv2. 赠送2张50元的优惠券,如果充值赠送充值金额的10%")
    coupon += 2 * 50
    # 嵌套 re_change > 0 表示充值
    if re_change > 0:
        money += 1.1 * re_change;
else:
    print("恭喜你会员升级,当前等级Lv3,赠送2张100元的优惠券,如果充值赠送充值金额的15%")
    coupon += 2 * 100
    # 嵌套 re_change > 0 表示充值
    if re_change > 0:
        money += 1.15 * re_change;
    coupon += 2 * 100

print("账户金总额:%.0f" % money)
print("优惠券总金额:", coupon)

二、循环语句

1. for语句

代码如下(示例):

# for 循环

"""
for:
    for i in range(n):
        循环体内容
range(stop):
    左闭右开
range(start,stop):
    左闭右开
"""

# 打印1-10  range :从0->n-1
for i in range(1, 11):
    print("---->", i)
# 步长 2
for i in range(1, 11, 2):
    print("---->", i)
print("**" * 20)

# 1-50 的累加和
sum1 = 0
for i in range(51):
    sum1 += i
print("1-50的累加和:", sum1)

# 输入用户名和密码最多输入三次,如果三次登录失败,提示账号被锁定

username = "admin"
password = "1234"
for i in range(3):
    name = input("请输入用户名:")
    pwd = input("请输入密码:")
    if username == name and password == pwd:
        print("登录成功!")
        break
    else:
        print("用户名或密码错误,您还有%d次机会" % (2 - i))
        continue
    print("三次登录失败,账号被锁定!")

'''
for....else
if 条件:
    pass
else:
    pass
for i in range(n)
    循环体
else:
    如果上面for循环没有中断,这块就会执行;过break  就会执行else
'''
username = "admin"
password = "12345"
for i in range(3):
    name = input("请输入用户名:")
    pwd = input("请输入密码:")
    if username == name and password == pwd:
        print("登录成功!")
        break
    else:
        print("用户名或密码错误,您还有%d次机会" % (2 - i))
        continue
else:
    print("三次登录失败,账号被锁定!")


2. while

代码如下(示例):

# 循环语句 while

# 三元运算符:只有一个语句:如下两个等价
import random

a = 9
b = 12 if a > 10 else print("a<10")

if a > 10:
    b = 12
else:
    print("a<10")

# 在python中转换:0,"",'',None,(),{},[] 会被转换成为False,其他都会被转入True
if 0:
    print(False)
else:
    print(True)

print("*" * 20)

# 循环语句
'''
循环:
    1. 用户名和密码 输入锁定
    2. 计划1-100
    3. 游戏:死了重生:游戏就是代码
方式:
    while:
        while 条件:
            循环执行的代码
    for:
        
'''
# 打印1-10之间的数字

# 初始值
n = 1
# 结束条件
while n <= 10:
    print("---->n=%d" % n)
    # 变量有变化
    n += 1
'''
打印1-50之间能被3整除的数字,并统计总数:
打印1-50之间的数字累加和
'''
n = 0
total = 0
# sum 是内置函数
sum1 = 0
while n <= 50:
    if n % 3 == 0:
        print("能被3正数的数字n = %d" % n)
        total += 1
    sum1 += n
    n += 1
print("总共%d个" % total)
print("1-50总和%d个" % sum1)
print("**" * 20)
n = 3
while n <= 50:
    print("能被3正数的数字n = %d" % n)
    n += 3

# 循环购买商品
total_price = 0
# 购买商品总数
total_num = 0
while True:
    # 随机商品价格
    # product_price = random.randint(1, 100)
    #  给定精度
    product_price = round(random.random() * 100, 2)
    print("该商品价格%.2f" % product_price)
    # 随机商品价格数量
    product_num = random.randint(1, 10)
    total_num += product_num
    print("该商品数量%d" % product_num)
    total_price += product_price * product_num
    answer = input("是否继续购买商品(q是退出)?\n请确认是否继续买:")
    if answer == 'q':
        # 种植循环
        break
print("您购买的商品总数%d个,总价%.2f元" % (total_num, total_price))

print("***" * 10)
'''
猜大小:
    产生一个随机数猜大小:
        猜错了:提示猜错了,请重新猜 ;注意有3次机会
        猜对了:恭喜你猜对了
'''
error_num = 3
while True:
    if error_num <= 0:
        print("3次机会已经使用完成,请联系管理员")
        break
    random_num = random.randint(1, 6)
    print("随机生成的数字%d" % random_num)
    guess = int(input("请在1-6之间猜个数字:"))
    if guess == random_num:
        print("恭喜你猜对了")
        break
    else:
        error_num -= 1
        print("猜错了,您有三次重猜机会,只剩%d次,请珍惜" % error_num)

print("***" * 20)
# while....else : while 实体中,不被终端则会执行else;

n = 0
while n < 10:
    print("--->", n)
    if n == 5:
        break
    n += 1
else:
    print("输出n=%d" % n)

3. 跳转和嵌套语句

代码如下(示例):

# 跳出语句

"""
continue: 跳出本次循环,后面的语句不执行,继续下一次的循环
break: 跳出循环结构
"""
# 打印 1到100: 超过50不打印,3的倍数不打印
for i in range(100):
    if i > 50:
        break
    if (i % 3) == 0:
        continue
    print("------>", i)

print("###" * 20)
"""
循环嵌套问题:
    if 条件:
        if 条件:
            pass
    else:
        if 条件:
            pass
            
while: 循环嵌套
    *
    **
    ***
    ****
    *****
"""
# while 循环嵌套(打印矩形、和递归星型)
i = 1
while True:
    print("*" * i)
    if i > 5:
        break
    i += 1

# 5*5的矩形
i = 1
while True:
    print("*" * 5)
    i += 1
    if i > 5:
        break
print("###" * 30)
# 嵌套打印
line = 1
while line <= 5:
    column = 0
    while column < line:
        print("*", end="")
        # 控制跳出
        column += 1
    # 控制跳出
    line += 1
    print()

print("888" * 30)
'''
倒星打印
*****
****
***
**
*
'''
line = 1
while line <= 5:
    column = 5
    while line <= column:
        print("*", end="")
        column -= 1
    line += 1
    print()

4. 练习

代码如下(示例):

# 练习

"""
键盘上输入以下内容并打印输出:
默认(admin,123456)
用户名,username
密码:password
是否记录密码bool类型,is_remember

如果用户名和密码正确并且is_remember是True表示记录密码,则打印已经记住用户xxx的密码拉
否则打印,没有记住密码需要下次继续输入
"""
username = input("请输入用户名:")
password = input("请输入密码:")
is_remember = input("是否记录密码:/true/false:")

if username == "admin" and password == "123456":
    if is_remember == "true":
        print("登录成功", "密码记录成功")
    else:
        print("登录成功", "密码记录失败")
else:
    print("用户名或者密码错误,登录失败!")


三、总结

提示:本节总结如下:

# 复习

# 流程控制:

## 条件语句(嵌套语句):
    if 条件:
        pass
    if 条件:
        pass
    else:
        pass
    
    if 条件:
        pass
    elif 条件:
        pass
    elif 条件:
        pass
    else:
        pass
## 循环语句(while):
    while: 1. 初始值 2. 条件(结束) 3. 变量改变
        
    while True:
        ...
        break
    contine break区别
    while True:
        ...
        break
    while...else

 ## 循环语句(for):    
    for i in range(n):
        pass
    range(stop): 0 ~ stop-1
    range(start,stop): start ~ stop-1
    range(start,stop,step): start ~ stop-1,步长:step

    for...else

# 嵌套:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值