zoukankan      html  css  js  c++  java
  • 第004讲:改进我们的小游戏

    一  条件分支

    1   python的比较操作符

         

     2 python的条件分支语法  

    • 语法格式:
      • if条件:
      •       条件为(True)真执行的操作
      • else:
      •       条件为假(False)执行的操作
    • 跟其他语言的区别:
      • if和else判断语句后面必须要有冒号(其它语言没有)
      • 执行体的内容不需要用花括号扩起来,所以必须严格保持缩进正确(其它语言需要用花括号把每个判断语句下要执行的内容扩起来)

    二  while循环

    1  python的while循环语法

    • 语法格式:
      • while条件:
      •      条件为真(True)执行的操作
    • 跟其他语言的区别:
      • 判断条件后面必须有冒号
      • 执行体的内容不需要用花括号扩起来,所以必须严格保持缩进正确

    2 and 逻辑操作符

    • 定义:python的and逻辑操作符可以将任意表达式连接在一起,并得到一个布尔类型的值
    • 格式:表达式1 and  表达式2
    •            表达式3 & 表达式4
    • 功能:当and两边的表达式的值都为真时,最终的结果才为真;只要有一个表达式的值为假,最终的结果就为假

    三  random模块中的randint()函数

    1 模块的导入:import random

    2 randint()函数的功能:返回一个随机的整数

    四 程序代码及运行结果

    1 程序代码:

     1 import random
     2 secret = random.randint(1,10)
     3 
     4 print("----------我爱鱼C工作室----------")
     5 print("本次游戏只有三次机会哦^_^")
     6 temp = input("不防猜一下小甲鱼现在心里想的是那个数字:")
     7 guess = int(temp)
     8 count = 1
     9 if guess != secret:
    10     while (guess != secret) and (count <= 2):
    11         temp = input("哎呀,猜错了,请重新输入吧:")
    12         guess = int(temp)
    13         if guess == secret:
    14             print("我草,你是小甲鱼心里的蛔虫吗?!")
    15             print("哼,猜中了也没有奖励!")
    16         else:
    17             if guess > secret:
    18                 print("哥,大了大了~~~")
    19             else:
    20                 print("嘿,小了小了!!!")
    21         count = count + 1
    22         print(f"您一共猜了{count}次")
    23 else:
    24     print("我草,你是小甲鱼心里的蛔虫吗?!")
    25     print("哼,猜中了也没有奖励!")
    26 print("游戏结束,不玩啦^_^")

    2 运行结果

    PS E:3_work4_python2_code3_LittleTurtleStudio> python Game2.py
    ----------我爱鱼C工作室----------
    本次游戏只有三次机会哦^_^
    不防猜一下小甲鱼现在心里想的是那个数字:8
    哎呀,猜错了,请重新输入吧:5
    嘿,小了小了!!!
    您一共猜了2次
    哎呀,猜错了,请重新输入吧:9
    哥,大了大了~~~
    您一共猜了3次
    游戏结束,不玩啦^_^
    PS E:3_work4_python2_code3_LittleTurtleStudio> python Game2.py
    ----------我爱鱼C工作室----------
    本次游戏只有三次机会哦^_^
    不防猜一下小甲鱼现在心里想的是那个数字:9
    我草,你是小甲鱼心里的蛔虫吗?!
    哼,猜中了也没有奖励!
    游戏结束,不玩啦^_^
    PS E:3_work4_python2_code3_LittleTurtleStudio>

     五 课后作业

    (一) 测试题答案

    0. 请问以下代码会打印多少次“我爱鱼C!”

    while 'C':
        print('我爱鱼C!')

    死循环,会一直打印“我爱鱼C!”(嗯,这也算是永远支持鱼C的方法之一),直到崩溃或者用户按下快捷键 CTRL + C(强制结束),造成死循环的原因是 while 后边的条件永远为真(True)

    在 Python 看来,只有以下内容会被看作假(注意冒号括号里边啥都没有,连空格都不要有!):False、None 、0、 "、" ''、 ()、 [] 、{},其他一切都被解释为真!

    不妨试试:

    while '':
        print('进入循环')
    print('退出循环')

    或者

    while False:
        print('进入循环')
    print('退出循环')

    或者

    while 0:
        print('进入循环')
    print('退出循环')   

    1. 请问以下代码会打印多少次“我爱鱼C!”      

    i = 10
    while i:
        print('我爱鱼C!')
        i = i - 1

    会打印 10 次。

    2. 请写出与 10 < cost < 50 等价的表达式   

    (10 < cost) and (cost < 50)


    3. Python3 中,一行可以书写多个语句吗?
    可以,语句之间用分号隔开即可,不妨试试:

    >>> print('I love fishc');print('very much!')


    4. Python3 中,一个语句可以分成多行书写吗?
    可以,一行过长的语句可以使用反斜杠或者括号分解成几行,不妨试试:

    >>> 3 > 4 and 
      1 < 2

    或者

    >>> ( 3 > 4 and 
      1 < 2 )


    5. 【该题针对有C或C++基础的朋友】请问Python的 and 操作符 和C语言的 && 操作符 有何不同?
    有图有真相(CC++ VS Python):
         
    VS
       > 

    6. 听说过“短路逻辑(short-circuit logic)”吗?
    逻辑操作符有个有趣的特性:在不需要求值的时候不进行操作。这么说可能比较“高深”,举个例子,表达式 x and y,需要 x 和 y 两个变量同时为真(True)的时候,结果才为真。因此,如果当 x 变量得知是假(False)的时候,表达式就会立刻返回 False,而不用去管 y 变量的值。
    这种行为被称为短路逻辑(short-circuit logic)或者惰性求值(lazy evaluation),这种行为同样也应用与 or 操作符,这个后边的课程小甲鱼会讲到,不急。
    实际上,Python 的做法是如果 x 为假,表达式会返回 x 的值(0),否则它就会返回 y 的值(例子参考楼上那题)。

    (二) 动动手答案:

    0. 完善第二个改进要求(为用户提供三次机会尝试,机会用完或者用户猜中答案均退出循环)并改进视频中小甲鱼的代码。


    需要注意的地方在代码中已经注释!

    import random
    times = 3
    secret = random.randint(1,10)
    print('------------------我爱鱼C工作室------------------')
    # 这里先给guess赋值(赋一个绝对不等于secret的值)
    guess = 0
    # print()默认是打印完字符串会自动添加一个换行符,end=" "参数告诉print()用空格代替换行
    # 嗯,小甲鱼觉得富有创意的你应该会尝试用 end="JJ"?
    print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")
    while (guess != secret) and (times > 0):
        temp = input()
        guess = int(temp)
        times = times - 1 # 用户每输入一次,可用机会就-1
        if guess == secret:
            print("我草,你是小甲鱼心里的蛔虫吗?!")
            print("哼,猜中了也没有奖励!")
        else:
            if guess > secret:
                print("哥,大了大了~~~")
            else:
                print("嘿,小了,小了~~~")
            if times > 0:
                print("再试一次吧:", end=" ")
            else:
                print("机会用光咯T_T")
    print("游戏结束,不玩啦^_^")


    1. 尝试写代码实现以下截图功能: 


        

    temp = input('请输入一个整数:')
    number = int(temp)
    i = 1
    while number:
        print(i)
        i = i + 1
        number = number - 1


    2. 尝试写代码实现以下截图功能:


        

      

    temp = input('请输入一个整数:')
    number = int(temp)
    
    while number:
        i = number - 1
        while i:
            print(' ', end = '')
            i = i - 1
        j = number
        while j:
            print('*', end = '')
            j = j - 1
        print()
        number = number - 1
  • 相关阅读:
    Linux的五个查找命令
    jquery mobile图片自适应屏幕
    JS定时刷新页面及跳转页面
    JavaScript-每隔5分钟执行一次ajax请求的实现方法
    jquerymobile-可折叠内容(Collapsible content)
    MVC入门教程-视图中的Layout使用
    如何利用 _ViewStart.cshtml对页面添加代码?
    检测到有潜在危险的Request.Form值
    varchar(n)和varchar(max)有什么区别
    报错:System.Data.Entity.Infrastructure.DbUpdateException 更新条目时出错
  • 原文地址:https://www.cnblogs.com/luoxun/p/13199010.html
Copyright © 2011-2022 走看看