【四】Python

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

 

posted @ 2023-09-19 13:39  しみずよしだ  阅读(8)  评论(0)    收藏  举报