• Python小记4


    https://www.cnblogs.com/airlinp/p/12509533.html

    7.3 if嵌套小练习 — 石头剪刀布游戏(模拟电脑版)

    # 用户出石头(1),剪刀(2),布(3)
    player = int(input("请输入你要出的石头(1),剪刀(2),布(3):"))
    # 模拟电脑
    computer = int(input("模拟电脑出的石头(1),剪刀(2),布(3):"))
    # 输出出手情况
    print("用户出的是 %d — 电脑出的是 %d。" % (player, computer))
    # 判断用户胜利情况
    if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):
    print("用户胜。")
    # 判断平局情况
    elif player == computer:
    print("平局")
    # 电脑胜
    else:
    print("电脑胜。")

    由上面代码可知:

    • 定义1代表石头,2代表剪刀,3代表布;
    • 电脑固定出1石头;
    • 判断用户胜利、平局、电脑胜3中情况;

    用户胜:

    由上图可知:用户输入3布,电脑输入1石头,所以用户胜利;

    平局:

     由上图可知:用户出1石头,电脑出1石头,则平局;

    电脑胜:

    由上图可知:用户出1石头,电脑出3布,电脑胜;

    总结:

    • 由于目前阶段,所学有限,暂时只能使用最基础和原始的办法完成练习;
    • 在这个小游戏练习中,使用到了input输入、int数据转换、if嵌套;
    • 在处理逻辑中,先应该理清游戏的机制,用户胜的需要满足的条件,平局需要满足的条件,电脑胜需要满足的条件;
    • 当处理完用户胜的情况后,在剩下的平局、电脑胜中进行选择,哪一个情况的代码更容易编写或实现,经过思考,平局的情况所需要的代码最少,并且判断条件也很简单,所以先处理平局的情况,当用户胜、平局都处理完成后,剩下的肯定只有电脑胜,直接使用else,无需再编写复杂的条件逻辑,完成最后的判断;
    • 在实际应用中,不仅仅是需要将事件本身思考完整、明确,还需要思考解决方法的优劣性,逐步提高代码编写的水平,事件处理的水平;

    7.4 if嵌套小练习 — 石头剪刀布游戏(电脑随机数版)

    # 将random随机数模块导入内存
    import  random
    # 用户出石头(1),剪刀(2),布(3)
    player = int(input("请输入你要出的石头(1),剪刀(2),布(3):"))
    # 电脑随机数
    computer = random.randint(1,3)
    # 输出出手情况
    print("用户出的是 %d — 电脑出的是 %d。" % (player, computer))
    # 判断用户胜利情况
    if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):
        print("用户胜。")
        # 判断平局情况
    elif player == computer:
        print("平局")
    # 电脑胜
    else:
        print("电脑胜。")

    由上面的代码和执行截图可知:

    • 当前小游戏中,使用随机数模块为random;
    • random里包含了多种类型随机数,本次练习中使用randint整数型随机数;
    • randint()小括号内,用于规定随机数范围,并包含起始数字在内,例如代码中的randint(1,3)代表随机数n的范围是1≤n≤3,即1、2、3三种情况;
  • 相关阅读:
    virtual方法和abstract方法的使用(轉載)
    C# 如何寫入cookie
    Literal的一般用法,与Label对比 MSDN上的解释
    With temp as---sql语句用法 转
    GridView __DataKey 使用
    .net里radiobutton 两个怎么才能让他只选择一个
    Server.Transfer()与Response.Redirect()区别
    OnInit 事件
    ajax中Sys.WebForms.PageRequestManager的事件激发顺序
    Linux CentOS 查看某个进程打开的文件(文件描述符)
  • 原文地址:https://www.cnblogs.com/airlinp/p/12516653.html
Copyright © 2020-2023  润新知