(第二版)零基础入门Python小甲鱼-笔记-第三章-p7

本文介绍了如何改进Python小游戏,通过添加用户输入错误提示和多次机会,利用while循环实现猜测数字游戏的迭代。讲解了嵌套if-else结构和while循环的基本用法,并引入了break语句控制游戏流程。
摘要由CSDN通过智能技术生成

(第二版)零基础入门Python小甲鱼-笔记-第三章-p7

改进我们的小游戏(上)

第一次写的文字游戏太过于简陋,需要改进

提出了3点改进的的建议

1、当用户猜错的时候,程序应该给出提示
2、应该提供多次机会给用户
3、每次运行程序,答案应该是随机的

我们一步步来

第一个对程序的要求是


如果用户输入3,答案是8,那程序会给出提示用户小了
如果用户输入9,答案是8,那程序会给出提示用户大了

上节课讲过了这是一个可以用条件分支解决的问题,如果用户一次猜中那就没啥事情,当用户猜错了那就加一个条件分支来判断用户大还是小.

如何解决在guess 不等于8的时候加入一个条件分支来判断是大于8还是小于8

如果用户输入3,答案是8,那程序会打印出“小啦”
如果用户输入9,答案是8,那程序会打印出“大啦”

代码如下

""" 用Python设计第一个小游戏 """

temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
guess = int(temp)

if guess == 8:
    print("你是小甲鱼心里想的蛔虫嘛?")
    print("哼 猜中也是没有奖励的!")
else:
    if guess < 8:
        print("小啦")
    else:
        print("大了")

print("游戏结束 ,不玩啦^_^")

在guess 不等于8的时候加入一个条件分支来判断是大于8还是小于8,这种在一个if else内部加入一个完整的if ,else语句结构叫做 嵌套

测试效果如下

那第一个问题就解决咯,但是有些人就抱怨了 提示我了有啥用,我还要手动重新运行程序太麻烦了.

所以有第二个问题(2、应该提供多次机会给用户)

这时候我们就要学习一下新的语法结构-Python循环结构

Python循环结构有好几种实现方式

先介绍一下while循环语句

语法规则如下

while 条件:
      如果条件为真(True)执行这里的语句

这看起来比 if,else条件分支更简单 ,也是条件为真的时候执行语句

我们打开IDLE的交互模式来做演示

 

 为啥为这样呢

因为条件 1 < 2 返回True 但是只要地球不爆炸 1 永远小于 2 返回永远成立返回True 所以会一直打印“ I love you !”

循环语句就是这样 只要条件成立返回True 就会执行循环体内的内容

条件一直成立,循环体一直执行,没完没了了

也不是,我们可以手动的将条件True 变为 False ,那就使用变量

 只打印3次,while语句的条件不在是永恒不变的True 而是判断变量counts的值是否大于0.

如果大于0条件才会成立

counts的值可不是永远不变的,每次执行循环体都会执行一条语句 counts = counts - 1

 

 这就是一个赋值语句 将右边的值赋值给左边的变量

右边的值就是counts当前的值减1的结果

左边边的就是counts

所以在执行这条语句之前counts = 3 执行之后 counts 更新为 2

因而每执行一次循环体都会把counts的值减1

couns 就会变成3—>2—>1—>0;当counts的值为0的时候则不在满足counts大于0这个条件啦

所以就不会执行循环的内容啦

这时候就可以来改进我们的小游戏了,加上循环,给用户3次机会来猜数字.

问题 如果 counts = counts - 1 在缩进的位置错误

这里只有 只有在 用户输入大8的数字时才会变量才会减一

现在代码还是有问题的因为如果用户输入8,并不会去执行counts = counts - 1 也就是会陷入一直正确一直执行这样的死循环的状态

 如果解决呢可以把counts  = counts - 1 往外挪一个缩进这样 

 这样还是不妥输入正确答案还要继续输入猜能结束

这时候我们要学习新语法

break语句

就是跳出一层循环体 

 执行到break 就直接跳出这层循环,所以只打印一句"I love you" 

这时候就可以将break 加入到游戏中

代码如下 

""" 用Python设计第一个小游戏 """

counts = 3
while counts > 0:
    temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
    guess = int(temp)

    if guess == 8:
        print("你是小甲鱼心里想的蛔虫嘛?")
        print("哼 猜中也是没有奖励的!")
        break
    else:
        if guess < 8:
            print("小啦")
        else:
            print("大了")
    counts = counts - 1

print("游戏结束 ,不玩啦^_^")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值