python使用if语句实现一个猜拳游戏详解
任务要求
在控制台中提示输入石头、剪刀、布,按回车键,然后给出游戏结果。
分析
我们知道在游戏规则中,石头克剪刀,剪刀克布,布克石头。但是这在计算机中并不是很好直接的表示,因此我们分别用0、1、2分别代表游戏中的石头剪刀布。
那么电脑该如何出拳呢?那就该用到python中的一个模块random中的一个方法random.randint()在0~2范围内产生一个随机整数,就表电脑出拳了。
random.randint()的用法如下:
# 首先导入模块 import random # 调用时传入两个整型数字,返回从1-2中任意一个整型数字 a = random.randint(1,2) # 打印出1或者2 print(a) # 再或者,那么b就可能是1-10中的任意一个数字(包括1和10) b = random.randint(1,10) print(b) #在本案例中,我们只要0-2中的任意一个数即可,故 computer = random.randint(0,2)
玩家出拳的话,可以从键盘输入0-2中的任意一个数并保存在一个变量中,然后用if语句比较得出结果即可。
代码实现:
import random # 从键盘获取用户的输入,只能输入0-2中的数字,否则结果会不正确,以后会有升级版 person = input('请输入:石头(0)、剪刀(1)、布(2):') # input 返回的是一个字符串类型,randint(0, 2)返回的是int类型,需要把person强制转换成int类型,类型一致才可以比较 person = int(person) computer = random.randint(0, 2) # 为了更友好的显示信息 if person == 0: print('玩家:石头') elif person == 1: print('玩家:剪刀') else: print('玩家:布') if computer == 0: print('电脑:石头') elif computer == 1: print('电脑:剪刀') else: print('电脑:布') # 如果出拳一样就是平局 if person == computer: print('你好厉害呀!居然和我打成平局!') # 玩家:石头 电脑:剪刀 # 玩家:剪刀 电脑:布 # 玩家:布 电脑:石头 这三种情况下玩家赢 elif person == 0 and computer == 1 or person == 1 and computer == 2 or person == 2 and computer == 0: print('恭喜你,你赢了!') # 其他情况都是玩家输 else: print('真遗憾,你输了!')
运行示意图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Python基础教程之if判断,while循环,循环嵌套
if判断 判断的定义 如果条件满足,就做一件事:条件不满足,就做另一件事: 判断语句又被称为分支语句,有判断,才有分支: if判断语句基本语法 if语句格式: if 判断的条件: 条件成立后做的事 ... ... 代码缩进为一个tab键,或者四个空格,官方建议使用空格:但应注意,在python开发中,tab和空格不能混用! 判断年龄示例: # 判断是否成年,成年则可以进网吧 age = 19 if age>=18: print("你满了18岁,可以进网吧") i
-
python实现猜拳小游戏
用python实现猜拳小游戏,供大家参考,具体内容如下 本练习旨在养成良好的编码习惯和练习逻辑思考. 1.使用python版本: 3.7.3: 2.代码内容实现如下 #!/usr/bin/env python # -*- coding: utf-8 -*- """ 简单实现猜拳小游戏,默认每回合 五局 Version: 0.1 Author: smartbabble Date: 2018-03-12 """ from random import
-
对python中数据集划分函数StratifiedShuffleSplit的使用详解
文章开始先讲下交叉验证,这个概念同样适用于这个划分函数 1.交叉验证(Cross-validation) 交叉验证是指在给定的建模样本中,拿出其中的大部分样本进行模型训练,生成模型,留小部分样本用刚建立的模型进行预测,并求这小部分样本的预测误差,记录它们的平方加和.这个过程一直进行,直到所有的样本都被预测了一次而且仅被预测一次,比较每组的预测误差,选取误差最小的那一组作为训练模型. 下图所示 2.StratifiedShuffleSplit函数的使用 官方文档 用法: from sklearn.
-
正确理解Python中if __name__ == '__main__'
在Python,我们经常会编写 if __name__ == '__main__' 这么一段代码,这段代码该怎么来理解? 这段代码的功能理解如下: 一个python的文件有两种使用的方法: 作用一,直接作为脚本执行. 作用二,import到其他的python脚本中被调用(模块重用)执行. if __name__ == '__main__': 的作用就是控制这两种情况执行代码的过程,在if __name__ == '__main__': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执
-
如何用Python破解wifi密码过程详解
前言 Python真的是无所不能,原因就是因为Python有数目庞大的库,无数的现成的轮子,让你做很多很多应用都非常方便.wifi跟我们的生活息息相关,无处不在.今天从WiFi连接的原理,再结合代码为大家详细的出一期关于Python破译wifi密码的Python学习教程! 01.如何连接wifi 首先我们的电脑是如何连接wifi的呢?就拿我们的笔记本电脑来说,我们的笔记本电脑都有无线网卡,如下图所示: 当我们连接WiFi时,无线网卡会自动帮助我们扫描附近的WiFi信号,并且会返回WiFi信号的一
-
Python利用字典破解WIFI密码的方法
最近看到网上的一些作品,然后进行一些完善.只是用于学习,不要去干坏事哦.程序来源于网,我只是做了一些优化.当然这种方法破解还是有点慢哦.我用的python 3.6.5 既然要破解wifi,那么连接wifi的模块首先要有的,我们要导入pywifi模块. 有些同学可能没有这个,如果直接通过pip安装的话,可能不能用,听说这个wifi模块被停用了,所以大家如果通过pip安装的不行,那么就下载我提供的. 链接:https://pan.baidu.com/s/1rn-5F1CS5UXOTcLh3QAMhg
-
浅谈python下tiff图像的读取和保存方法
对比测试 scipy.misc 和 PIL.Image 和 libtiff.TIFF 三个库 输入: 1. (读取矩阵) 读入uint8.uint16.float32的lena.tif 2. (生成矩阵) 使用numpy产生随机矩阵,float64的mat import numpy as np from scipy import misc from PIL import Image from libtiff import TIFF # # 读入已有图像,数据类型和原图像一致 tif32 = mi
-
python使用if语句实现一个猜拳游戏详解
任务要求 在控制台中提示输入石头.剪刀.布,按回车键,然后给出游戏结果. 分析 我们知道在游戏规则中,石头克剪刀,剪刀克布,布克石头.但是这在计算机中并不是很好直接的表示,因此我们分别用0.1.2分别代表游戏中的石头剪刀布. 那么电脑该如何出拳呢?那就该用到python中的一个模块random中的一个方法random.randint()在0~2范围内产生一个随机整数,就表电脑出拳了. random.randint()的用法如下: # 首先导入模块 import random # 调用时传入两个整
-
对python中if语句的真假判断实例详解
说明 在python中,if作为条件语句,当if后面的条件参数为真时,则执行后面的语句块,反之跳过,为了深入理解if语句,我们需要知道if语句的真假判断方式. 示例 在python交互器中,经过测试发现以下条件均为假,相当于False In [2]: if '': ...: print('ok') ...: In [3]: if 0: ...: print('ok') ...: In [4]: if None: ...: print('ok') ...: In [5]: if []: ...:
-
Python中Continue语句的用法的举例详解
Python continue语句返回while循环的开始.Continue语句拒绝在该循环的当前迭代中的其余语句执行并移动控制返回到循环的顶部(开始位置). continue语句可以在while和for循环使用. 语法 Python continue语句的语法如下: continue 流程图: 例子 #!/usr/bin/python for letter in 'Python': # First Example if letter == 'h': continue print 'Curren
-
python实现一个猜拳游戏
本文实例为大家分享了python实现一个猜拳游戏的具体代码,供大家参考,具体内容如下 设计一个猜拳的游戏,要求如下: 1.游戏开始时,输入玩家名字 2.可以选择3个电脑对手(电脑名字自定) 3.游戏规则为:1.剪刀 2.石头 3.布 4.游戏开始,玩家vs电脑,玩家选择出一个,电脑随机1-3 5.具有局数统计(如:现在是第几局).输赢统计(玩家胜几局,电脑胜几局) 效果图如下: 代码如下: import random #先导入随机数 class game(): #创建一个游戏的类 里面分为两个属
-
Python利用3D引擎写一个Pong游戏
目录 前言 实现方法 完整代码 前言 之前,我们用pygame做了一个2D的Pong游戏,今天我们做一个3D的,游戏画面如下: 用ad和←→操作,双人对战 实现该效果我们使用Python强大的3D引擎Ursina,基础的使用方法见这篇文章:详解Python 3D引擎Ursina如何绘制立体图形 接下来开始写代码吧! 实现方法 首先,导入ursina和随机库 from ursina import * import random as rd 定义两个玩家的分数 scorea=scoreb=0 然后,
-
Python Pygame实现落球游戏详解
目录 引包 初始化配置 捕捉事件 填充屏幕让球下落 完整代码 引包 引入对应的包,和原来一样写一个打印文字的方法 import sys, random, pygame from pygame.locals import * def print_text(font, x, y, text, color=(255, 255, 255)): img_text = font.render(text, True, color) screen.blit(img_text, (x, y))
-
利用Python还原方阵游戏详解
目录 一.前言 二.游戏规则 三.numpy模块 四.第一步:大循环and获取规格 五.第二步:初始化棋盘 六.第三步:标注矩阵功能(难) 七.第四步:查看标注矩阵功能 八.第五步:胜利侦测 九.第六步:查看行列信息(难) 十.第七步:重新开始功能 十一.得分与完善and完整代码 一.前言 写这篇文章的灵感来源于我玩游戏的时候(为了避免过不了审就不说是啥游戏了),看见一个大佬在游戏里面建造了“还原方阵游戏”,就感觉很牛掰,就想着python不是有矩阵吗,可不可以还原一下呢? 说干就干,我写的那个
-
C语言实现的一个三子棋游戏详解流程
目录 前言 一.三子棋完成程序运行结果 二.三子棋代码实现 1.创建源文件与头文件 2.整体页面的制作 3.制作并打印棋盘 1.在test.c文件中,定义函数game(); 2.在game.h 头文件中 3.在game.c源文件中 4.人机互动下棋 1.在test.c源文件中 2.在game.h头文件中 3.在game.c源文件中 4.此时打印效果 5.判断输赢 1.在test.c源文件中 2.在game.h头文件中 3.在game.c源文件中 4.最终实现结果 最后 前言 三子棋是我们先前所学
-
Python实现的可可爱爱的小粽子详解
目录 粽子和制作 建立两个精灵并搭建背景元素 粽子和爱心 背景搭建 碰撞模块 贪吃模块 计数机制 完整代码 粽子和制作 PS截取小爱心和我最爱的咸粽子 建立两个精灵并搭建背景元素 粽子和爱心 先是建立一个粽子对象,也就是一个精灵,类里面需要继承pygame.sprite.Sprite类,这是碰撞模块的重要部分.update函数是控制粽子方向,并防止粽子跑出边界,当粽子触碰到边界时出发触底反弹功能,使粽子向边界另一方向反弹移动. class Player(pygame.sprite.Sprite)
-
python 读取excel文件生成sql文件实例详解
python 读取excel文件生成sql文件实例详解 学了python这么久,总算是在工作中用到一次.这次是为了从excel文件中读取数据然后写入到数据库中.这个逻辑用java来写的话就太重了,所以这次考虑通过python脚本来实现. 在此之前需要给python添加一个xlrd模块,这个模块是专门用来操作excel文件的. 在mac中可以通过easy_install xlrd命令实现自动安装模块 import xdrlib ,sys import xlrd def open_excel(fil
随机推荐
- ASP.NET Core中使用xUnit进行单元测试
- 利用Angular.js限制textarea输入的字数
- VBS 两数相加取值问题分析
- Android拼图游戏 玩转从基础到应用手势变化
- ios通过按钮点击异步加载图片
- 正则表达式链接替换函数的技巧
- c# NameValueCollection类读取配置信息
- 限制文本框中只能输入实数或整数,其它字符无效,有劳大家了!
- 详解 Python 与文件对象共事的实例
- Android给app设置自定义铃声功能
- 浅谈redis在项目中的应用
- 如何增加mysql的最大连接数
- JavaScript在多浏览器下for循环的使用方法
- jQuery插件form-validation-engine正则表达式操作示例
- win2008 iis7 上传大文件限制的真正解决办法
- 浅谈关于Android WebView上传文件的解决方案
- Java多线程中常见的几个问题
- C#生成防伪码的思路及源码分享
- 微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】
- 使用JSON格式提交数据到服务端的实例代码