for循环格式:
for i(变量名) in range(n):
循环体中内容
range(n):从0开始取值到n-1结束
range(start,stop):[start,stop)
range(start,stop,step):默认从start(包含)开始取值到stop(不包含)结束,其中步长由step决定,默认step为1
for i in range(3):
print(i)
print('-' * 30)
for i in range(6, 10):
print(i)
print('-' * 30)
for i in range(4, 10, 2):
print(i)
print('-' * 30)
# 1-50的累加和
sum = 0
for i in range(1, 51):
sum += i
print(sum)
练习
输入用户名和密码,最多输入三次,如果三次没有成功,提示账号被锁定。
for i in range(1, 4):
# 提示输入用户名和密码
id = input('用户名:')
pawd = input('密码:')
# 判断输入的是否正确
if id == 'admin' and pawd == '123abc':
print('登录成功')
break
elif (id != 'admin' or pawd != '123abc') and 1 <= i <= 2:
print('用户名或密码错误,请重新输入\n如果三次没有成功,账号会被锁定,您还有%d次机会\n\n' % (3 - i))
else:
print('账号被锁定')
for…else循环格式:
for i in range(n):
循环体
else:
如果for循环0-n-1没有出现中断(break)
for...else
while...else
注意else的特点:不被中断,才会执行
“”"
练习
输入用户名和密码,最多输入三次,如果三次没有成功,提示账号被锁定。
for i in range(1, 4):
# 提示输入用户名和密码
id = input('用户名:')
password = input('密码:')
# 判断输入的是否正确
if id == 'admin' and password == '123abc':
print('登录成功')
break
print('用户名或密码错误,请重新输入\n如果三次没有成功,账号会被锁定,您还有%d次机会\n\n' % (3 - i))
else:
print('账号被锁定')
总结
for i in range(n): --->肯定有固定次数
pass
while 条件: ---> 1.固定次数的循环 2.不确定次数的循环
pass
不确定次数的循环
while True:
pass
练习
掷骰子
两个:1-6
1.玩游戏要有金币
2.玩游戏增金币1枚,充值获取金币
3.10元的倍数,20个金币
4.玩游戏,消耗金币,一局5个
5.猜大小:猜对有鼓励金币2枚,猜错没有奖励 超出6点以上认为是大,否则为小
6.游戏结束:①主动退出②没有金币退出
7.只要退出则打印金币数,共玩了几局
import random
goldnum = 0
i = 0
while goldnum < 5:
isCharge = input('金币不足,5元10个金币且充值金额必须为5的倍数,请选择是否要充值金币:充值(y)、不充值(n)')
if isCharge == 'y':
chargeNum = int(input('请输入要输入的充值金额'))
if chargeNum % 5 != 0:
print('充值金额必须为10的倍数,请重新输入')
else:
goldnum += chargeNum * 2
print('充值成功,您现在的剩余金币为%d个' % goldnum)
# 玩游戏
playGames = input('是否玩掷骰子游戏:是(y)否(n)')
while goldnum >= 5 and playGames == 'y':
guess = input('掷色子两次,超出6点以上认为是大,否则为小,请猜一下是大还是小')
# 随机生成骰子数
ran1 = random.randint(1, 6)
ran2 = random.randint(1, 6)
# 判断比较
if ran1 + ran2 > 6 and guess == '大' or ran1 + ran2 <= 6 and guess == '小':
print('猜对了,奖励两个金币,并再送你一个金币')
goldnum = goldnum - 5 + 3
i += 1
else:
print("猜错啦,只能送你一个金币了")
goldnum = goldnum - 5 + 1
i += 1
playGames = input('是否继续玩掷骰子游戏:是(y)否(n)')
print('您目前金币数为%d,共玩了%d局' % (goldnum, i))
else:
print('充值失败,退出游戏')
break