for
'''
应用场景:
1. 猜大小 ---》反复的猜
2. 消消乐 ---》 反复充值
3. 用户登录 ----》 登录多次
用户名
密码
循环结构:
for 变量名 in 集合:
语句
怎么用?
'''
# 使用系统给定range()完成范围指定
print(range(8)) # range(0,8) 包含0 但是不包含8 0,1,2,3,4,5,6,7
# 打印三次
for i in range(2):
print('hello ---->',i)
print('---- game over -----')
'''
循环:吃5个馒头
'''
name='赵飞'
# 方式1:
# for i in range(5): # 0,1,2,3,4
# # i = 0
# print('{}很饿,正在吃第{}馒头'.format(name,i+1))
#方式2:
# for i in range(1,6): # 1,2,3,4,5
# print('{}很饿,正在吃第{}馒头'.format(name,i))
# print('{}说:终于吃饱啦!'.format(name))
# range(n) ---> 0~n-1
# range(m,n) ----> m ~ n-1
'''
吃馒头:在第三个馒头上抹了一点’鹤顶红‘
'''
# print('*'*30)
# name = '张无忌'
# for i in range(1,6):
# # 判断i的值是多少,i==3 别吃
# if i==3: # i=1,2,4,5
# print("{}赶快扔掉这个馒头,有剧毒:'鹤顶红'!!!".format(name))
# else:
# print('{}很饿,正在吃第{}馒头'.format(name,i))
# print('{}说:终于吃饱啦!'.format(name))
'''
for .... else
else:适用于for执行完或者没有循环数据时,需要做的事情
for i in 范围:
有数据执行的语句
else:
没有数据执行的语句
pass 空语句
只要有缩进而缩进的内容还不确定的时候,此时为了保证语法的正确性,就可以使用pass占位。
不会报出语法错误。
'''
# num = int(input('请输入需要的馒头数量:'))
# for i in range(num): # 2
# print('{}很饿,正在吃第{}馒头'.format(name,i+1))
# else:
# print('还没有给我馒头,{}饿哭啦.....'.format(name))
# print('---------------')
# if 10<7:
# print('10是大的')
# else:
# pass
# print('-----判断结束-----')
# 用户的账号密码登录而且只能登录三次,如果三次未成功账户锁定
# break 关键字
# for i in range(3):
# username = input('请输入用户名:')
# password = input('请输入密码:')
# # 验证用户名和密码
# if username =='songsong' and password == '123456':
# print('欢迎!用户:{}'.format(username))
# print('-------轻松购物吧---------')
# break
# else:
# print('用户名或者密码有误!')
# else:
# print('账户被锁定,需要重新激活!') # 三次输入错误的时候
# 登录成功
# 0,1,2
for i in range(3):
if i==4:
print('这家店是黑店,馒头有毒!等着关门吧!')
print('--------->进入消费者协会大门')
break # 跳出循环结构
print('abcd') # 即使有语句也不会执行,干脆别写!
else:
print('这家店的馒头真香啊!要多吃几个呀!')
else:
print('---->这家店太棒啦,下次再来!')
'''
range的范围正常执行完毕,而没有异常break跳出。就可以执行else,
只要有break执行了就不会执行else
range(n) ~ range(0,n)
range(m,n) ~ range(start,end)
range(m,n,step) ~ range(start,end,step)
step: 步长
for i in range(5):
print(i)
0,1,2,3,4
for i in range(5):
pass
else:
pass
break: 跳出
'''
while 循环
# for i in range(0,50,5): # range(start,end)
# print('---->',i)
'''
while: 关键字 完成循环
完整结构:
while 条件:
语句体(块)
else:
语句体(块)
'''
# 打印1-10之间的数字
# for i in range(1,11):
# print(i)
i=1
while i<=10: # 10<=10 True 11<=10 False 结束循环结构
print(i) # print(10)
i+=1 # i=11
print('打印完毕')
# 打印1-30之间的所有3的倍数
# 方式1:
n=1
while n<=30:
# 进入循环体
if n%3==0:
print('---->',n)
# 改变n
n+=1
print('*'*30)
# 方式2:
n=3
while n<=30:
print('====>',n)
n+=3
print('*'*30)
# 方式3: (不推荐)
n=3
while n<=30 and n%3==0:
print('********>',n)
n+=3
# 打印1-30之间的所有既是3的倍数还是5的倍数
n=1
while n<=30:
if n%3==0 and n%5==0:
print('----------------->',n)
# 改变n的值
n+=1
'''
使用while循环计算1-20的累加和
1+2+3+4+...+20
'''
sum_1=0
i=1
while i<=20:
sum_1+=i
i+=1
print('---->累加和是:',sum_1)
'''
打印三角形
* ----> 第一层1颗*
** ----> 第二层2颗*
*** ----> 第三层3颗*
****
*****
嵌套循环
'''
# print('*')
# print('**')
# print('***')
# print('****')
# print('*****')
'''
分析:
1. 层数明确
2. 发现规律 层数与个数
3. 用什么表示层,用什么表示*的个数
'''
ceng = 1
while ceng<=5:
# 打印*
# print('*'*ceng)
# 嵌套while循环
count=1
while count<=ceng:
print('*',end='')
count+=1
ceng+=1
print() # 换行
# _____________________
# ceng = 5
# while ceng>=1:
# ceng -=1
# 打印 9*9的乘法表
'''
1*1 =1
1*2 =2 2*2=4
1*3 =3 2*3 =6 3*3=9
....
1*9=9 2*9=18 3*9=27.....
作业
'''
ceng = 0
while ceng<=9:
count=1
while count<=ceng:
print('{}*{}={}'.format(count,ceng,(count*ceng)),end=' ')
count+=1
ceng+=1
print() # 换行
'''
掷骰子
1. 欢迎进入xxxx游戏
2. 输入用户名,默认用户是没有币
3. 提示用户充值买币(100块钱30币,充值必须是100的倍数,充值不成功可以再次充值)
4. 玩一局游戏扣除2个币,猜大小(系统用随机数模拟骰子产生值)
5. 只要猜对了奖励1个币,可以继续玩(想不想继续玩,也可以没有金币自动退出)
'''
Eample:
# game.py
'''
掷骰子
1. 欢迎进入xxxx游戏
2. 输入用户名,默认用户是没有币
3. 提示用户充值买币(100块钱30币,充值必须是100的倍数,充值不成功可以再次充值)
4. 玩一局游戏扣除2个币,猜大小(系统用随机数模拟骰子产生值)
5. 只要猜对了奖励1个币,可以继续玩(想不想继续玩,也可以没有金币自动退出)
'''
import random
print('*'*30)
print('欢迎进入澳门赌场')
print('*'*30)
username = input('请输入顾客大名:')
money = 0
answer = input('确定进入游戏吗(y/n)?')
if answer=='y':
# 判断游戏币是否充足
# 做到反复充值
while money<2:
n = int(input('金币不足,请充值(100块钱30币,充值必须是100的倍数):'))
# 充值金额判断
if n%100==0 and n>0:
money=(n//100)*30
print('当前剩余游戏币是:{},玩一局游戏扣除2个币'.format(money))
print('进入游戏...........')
while True: # False
# 模拟骰子 产生骰子的值
t1 = random.randint(1,6)
t2 = random.randint(1,6)
# 两个骰子的值大于6 --->大, 否则就是小
money-=2 # 扣除金币
print('系统洗牌完毕,请猜大小:')
guess = input('输入大或者输入小:')
# 判断: 大小
if ( (t1+t2)>6 and guess=='大' ) or ((t1+t2)<=6 and guess=='小'):
print('恭喜{}! 本局游戏获奖励1个游戏币!'.format(username))
money +=1
else:
print('很遗憾!骰子是:{}和{},本局游戏输啦┭┮﹏┭┮'.format(t1,t2))
answer = input('剩余游戏币{},是否继续再来一局游戏,要扣除2枚游戏币?(y/n)'.format(money))
if answer!='y' or money < 2:
print('退出游戏啦!!!!!')
break