循环语句:
1、 While循环
格式:
While 条件:
条件成立执行的部分
Else:
跟while是一起的,当while循环没有被break中断,执行的代码块
步骤:
1、判断条件
2、执行循环体
3、判断循环
4、执行循环体
避免死循环:
1、改变条件
2、在循环体中设置结束条件
代码:
# 验证用户名和密码三次
# 声明变量
count = 1
while count <= 3:
username = input('输入用户名:')
password = input('输入密码:')
# 变量和运算符构成判断条件 (admin 123456)
if username == 'admin' and password == '123456':
print('登录成功!')
break # break 整个循环结构
else:
print('用户名或者密码有误!')
# 方式一
# if count == 3:
# print('账户锁定!')
# 改变计数器
count += 1
# 方式二
if count == 4:
print('账户锁定!')
2、for循环
① 格式:每循环一次去序列的值,将赋值变量i
for i in 序列:
循环体的内容
② 代码:
names = ['zhangsan', 'lisi', 'wnagwi']
for name in names:
print(name)
3、跳转语句:
break 可以在循环过程中直接退出循环
continue 提前结束本轮循环,并直接开始下一轮循环
它们经常配合if语句使用
注意:不要滥用break和continue语句。这两个语句会造成代码执行逻辑分叉过多,容易出错。可以通过修改循环条件或修改循环逻辑,去掉break和continue语句。
4、数据类型
1-字符串:
场景:
截取字符串
判断字符串中的某一部分
知识点:
切片
# 1.切片 s = 'abcdefg' #下标 索引 index 角标 print(s[0]) print(s[1]) print(s[2]) print(s[3]) # 切片格式: 字符串[start:[stop:[step]]] # s = 'abcdefg' print(s[4:]) # 表示从4开始一直到结尾 print(s[-5:]) # cdefg # step除了有步长功能,还有控制方向 print(s[::-1]) # gfedcba
运算符
内置的字符串方法:find() rfind() index() rindex()
find() index() 功能类似,只不过在没有找到元素,find返回-1,index报错ValueError
5、习题
1-猜数游戏:
print('----------猜猜乐-----------') score = 0 while True: number = 3 # 1. 产生数字 guess_number = random.randint(1, 20) # 可以循环猜3次 for i in range(3): # 2. 猜数字 guess = int(input('系统随机数产生完毕,请猜数字:')) # 3. 判断随机数与猜的数字之间关系 if guess > guess_number: print('猜大了,再下一点就离成功很近了...') number -= 1 elif guess < guess_number: print('猜小了,没准大一点就对了....') number -= 1 else: print('binggo~~,你太幸运了,猜对了!') score += number break else: print('这一局有点背,没准再来一局就赢。。。') answer = input('是否继续猜猜乐?(yes/no)') if answer != 'yes': print('欢迎下次再来~~~~~') break print('最后积分是:', score)
2-掷骰子
掷骰子 1. 欢迎进入xxxx游戏 2. 输入用户名,默认用户是没有币 3. 提示用户充值买币(100块钱30币,充值必须是100的倍数,充值不成功可以再次充值) 4. 玩一局游戏扣除2个币,猜大小(系统用随机数模拟骰子产生值) 5. 只要猜对了奖励1个币,可以继续玩(想不想继续玩,也可以没有金币自动退出) 6. 每玩完3局奖励金币5个币依次类推 ''' import random dice = '掷骰子' count = 0 print('---------掷骰子--------') while True: print('欢迎进入{}游戏!'.format(dice)) username = input('请输入用户名:') for i in range(3): money = int(input('想玩游戏请先充值(100块钱30币,充值必须是100的倍数),请输入充值额数:')) if money % 100==0 and money>=100: money = money/100*30 print('充值成功!!!当前的游戏币是:', money) answer = input('是否开始游戏?y/n:') if answer=='y': print('游戏开始了!') while True: a = random.randint(0, 6) b = int(input('请输入您猜的骰子的大小:')) count+=1 if a==b: money = money + 1 print('恭喜您猜中了,您的money是:{}'.format(money)) if count % 3 == 0: money += 5 print('没进行三局游戏奖励您5枚游戏币!您的游戏币为:{}'.format(money)) elif money<2: print('对不起,您没钱了,想玩请继续充值!88') break else: money -=2 print('您的运气还差点,您的money是:{}'.format(money)) if count % 3 == 0: money += 5 print('每进行三局游戏奖励您5枚游戏币!您的游戏币为:{}'.format(money)) else: print('再见!!欢迎下次光临。。') break else: print('充值不成功!!!') break
3-简易版跳一跳
# 简易版跳一跳,通过随机数表示跳一跳的长度,如果随机数是能被5和3整除的则长度加倍 # 如果随机数是0则表示gameover。结束的时候打印跳了多少步,一共多少次 import random import time step = 0 # 步数 num = 0 # 次数 while True: i = random.randint(0, 10) time.sleep(random.randint(0, 1)) if i == 0: print('game over') break elif i % 5 == 0 or i % 3 == 0 and i != 0: step += (i * 2) num += 1 print('步数翻倍,本次跳了%d步,总步数:%d' % (i*2, step)) else: num += 1 step += i print('本次跳了%d步,总步数:%d' % (i, step)) print('跳了%d步,跳了%d次' % (step, num))