python基础练习(if语句相关练习题)

目录

练习题

随机数

分析

代码


练习题

用python代码做一个猜拳游戏,先思考思考,之后在进行详细的分析。

---------------------------------------------------------------------------------------------------------------------------------

随机数

由于练习题中可能需要用到这个知识点,故在这里先简单介绍一下。

如何在python中实现随机取数呢?

第一步:导入 random 模块

import 模块名

这里的模块名就是 random

第二步:使用 random 模块中的功能

random.randint(开始,结束) # 模块名.函数名(开始数字,结束数字)

这里包含开始的数字和结束的数字, randint 是实现随机整数功能的函数。

---------------------------------------------------------------------------------------------------------------------------------

分析

我们要在电脑上做一个猜拳游戏,可能开始不知道怎么分析,那我们不妨想想现实中猜拳游戏是怎样的:

第一:要有玩家,最简单的情况就是两个人;

第二:玩家要出拳,显示出出拳的情况;

第三:进行输赢的判断;

之后我们在把上述三点情况一一对应到程序中,

对于第一点,天然存在人类和电脑这两个玩家。

对于第二点,现实中的出拳是直观可见的,而在程序中怎么去表示出拳?——我们可以用 input 函数来实现人类的出拳(这是依据人的主观能动性来实现的,具有随机性),电脑的出拳我们可以用随机数来表示。那怎么表示出拳的情况呢?——由于电脑的别名又叫计算机,那我们是不是可以用数字来代表出拳的情况呢,用 0 来表示“剪刀”,1来表示“石头”,2来表示“布”。

对于第三点,如何在电脑上进行输赢的判断呢?我们想想判断在程序中代表着什么,是不是条件语句。条件语句需要有条件,我们先固定在人类获胜的情况下,什么情况下人类会获胜?是不是下面这个表格:
 

人类电脑
剪刀-0布-2
石头-1剪刀-0
布-2石头-1

根据上面这个表格我们是不是可以想到 if 语句的条件判断代码就是判断二者的出拳情况是否与上述表格相同。其他情况类似。

分析完毕,接下来进行代码的实现。

---------------------------------------------------------------------------------------------------------------------------------

代码

import random  # 导入随机模块

a = int(input('请输入您要出的拳:0-剪刀;1-石头;2-布'))  # 玩家出拳
b = random.randint(0,2)  # 电脑出拳

if ((a == 0) and (b == 2)) or ((a == 1) and (b == 0)) or ((a == 2) and (b == 1)):
    print('人类获胜,电脑失败')
elif a == b:
    print('平局')
else:
    print('人类失败,电脑获胜')

运行结果如下:

第一次猜拳
第二次猜拳
第三次猜拳

 通过上述例子也给我们一个启发:在书写条件语句时,如果条件判断的复杂程度不同,我们可以将最复杂的条件判断放到 else 中去,也就是先把简单的条件判断写了。

拓展:如果猜拳游戏比赛一回之后,双方不服想着再来一次,那这个代码该怎么写呢?

注:进行多次比赛可以使用后面要学的循环语句,这里就仍用 if 语句来完成这个要求。

代码:

import random  # 导入随机模块

a = int(input('请输入您要出的拳:0-剪刀;1-石头;2-布'))  # 玩家出拳
b = random.randint(0,2)  # 电脑出拳

if ((a == 0) and (b == 2)) or ((a == 1) and (b == 0)) or ((a == 2) and (b == 1)):
    print('人类获胜,电脑失败,电脑不服要求再来一次')
    p = int(input('再次请输入您要出的拳:0-剪刀;1-石头;2-布'))
    c = random.randint(0, 2)
    if ((p == 0) and (c == 2)) or ((p == 1) and (c == 0)) or ((p == 2) and (c == 1)):
        print('人类全胜,电脑必须服')
    elif p == c:
        print('平局')
    else:
        print('人类失败,电脑获胜')
elif a == b:
    print('平局,双方都不服,再来一次')
    p = int(input('再次请输入您要出的拳:0-剪刀;1-石头;2-布'))
    c = random.randint(0, 2)
    if ((p == 0) and (c == 2)) or ((p == 1) and (c == 0)) or ((p == 2) and (c == 1)):
        print('一平一胜,电脑必须服')
    elif p == c:
        print('平局')
    else:
        print('人类失败,电脑获胜')
else:
    print('人类失败,电脑获胜,人类不服再来一次')
    p = int(input('再次请输入您要出的拳:0-剪刀;1-石头;2-布'))
    c = random.randint(0, 2)
    if ((p == 0) and (c == 2)) or ((p == 1) and (c == 0)) or ((p == 2) and (c == 1)):
        print('人类半胜,电脑必须服')
    elif p == c:
        print('平局')
    else:
        print('人类失败,电脑获胜')

感兴趣的可以自己去试一下,这里就不放结果了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小广爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值