15. Python实战(二)

77 阅读2分钟

一, 准备基础

学完python学习系列-培训课的条件语句之后可做

二, 题目

实现和电脑的石头剪刀布游戏

三,解析及源代码

分析:

1,大致的操作流程是:用户输入要出什么,然后返回电脑出的什么,并给出谁赢的信息

2,用户输入:使用input来接收用户输入,但是用户输入的可能五花八门,那么可以用一个提示语句来引导用户的标准输入,如“请输入你要出的拳的数字,0代表石头,1代表剪刀,2代表布”

3,返回电脑出的什么:电脑出什么拳应该是随机的,这里可以引入一个包,叫random(常见函数见四),里面有一个random.randint函数,可以随机返回某个范围内的整数,如下

import random
print(random.randint(0,2))
print(random.randint(0,2))
print(random.randint(0,2))

输出为

0
1
0

4,判断谁赢:结合游戏规则,可总结出来如下变量比较规律,如a-b=0,则平,如a-b=1,则b赢,如a-b=-1,则a赢 ,如a-b=2,则a赢,如a-b=-2,则b赢。则直接使用if语句即可

import random

INFO = {0: "石头", 1: "剪刀", 2: "布"}

user = int(input('请输入你要出的拳的数字,0代表石头,1代表剪刀,2代表布'))
comp = random.randint(0,2)

if user == comp:
    print("电脑出的是{},你出的也是{},所以是平手".format(INFO[comp], INFO[user]))
elif user-comp == 1 or -2:
    print("电脑出的是{},你出的是{},所以是电脑赢了".format(INFO[comp], INFO[user]))
else:
    print("电脑出的是{},你出的是{},所以是你赢了".format(INFO[comp], INFO[user]))

输入2,输出为

电脑出的是布,你出的也是布,所以是平手

四,random模块

  • random.random() :返回 [0.0, 1.0) 范围内的随机浮点数
  • random.randint(a, b):返回 [a, b] 范围内的随机整数
  • random.uniform(a, b):返回 [a, b] / [b, a] 范围内的随机浮点数
  • random.choice(seq) 从非空序列 seq 返回一个随机元素。 如果 seq为空,则引发 IndexError
  • random.sample(population, k) 从序列或者集合中随机获取k个元素,以列表形式返回
  • random.seed ([x]) 起固定随机数的作用,x 可以是任意数字(x 可以理解为种子的名字,表示要取固定值的一个参数)
import random

a = random.random()
print(a)
print("-----------------------------------")

b = random.randint(0, 2)
print(b)
print("-----------------------------------")

c = random.uniform(0, 2)
print(c)
print("-----------------------------------")

d = random.choice([0, 1, 2])
print(d)
print("-----------------------------------")

e = random.sample({0,1,2},2)
print(e)
print("-----------------------------------")

random.seed(1)
print(random.random())
print("-----------------------------------")

random.seed(2)
print(random.random())
print("-----------------------------------")

random.seed(1)
print(random.random())
print("-----------------------------------")

输出为

0.6527480909813554
-----------------------------------
1
-----------------------------------
0.2931915859196874
-----------------------------------
2
-----------------------------------
[0, 1]
-----------------------------------
0.13436424411240122
-----------------------------------
0.9560342718892494
-----------------------------------
0.13436424411240122
-----------------------------------