前言
条件语句、循环语句、嵌套语句
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
# 嵌套: