数字游戏推测,规则如下:
系统自动提供任意数字(1-99之间)
用户根据提示输入推测的数字,总共有6次机会
程序将用户输入的数字与系统提供的数字进行比较,是太大还是太小?
用户继续尝试,直到被击中或次数用完为止。
-------------------------------------------------------------------------------------------------------------------------
secret = random.randint(1, 99) # 随机设数在1-99之间
guess = 0 # guess初始化为0
times = 6 # 赋值猜数次数为6次
print("猜数字大小:数字介于0~99之间,你共有6次机会!")
while guess != secret and times > 0:
guess = int(input("你猜的数是:")) # 第一次没有加int,报错“TypeError: '>' not supported
if guess > secret: # between instances of 'str' and 'int'”
print("太大了!")
elif guess < secret:
print("太小了!")
times = times - 1
if guess == secret:
print("Bingo!你猜对了!")
else:
print("次数用完了!")
print("正确数字为", secret)
备忘:
一、遇到的问题,第7行guess = int(input("你猜的数是:"))开始时没有加int(),结果报错“TypeError: '>' not supported between instances of 'str' and 'int'”
这是因为input()返回的数据类型是str类型,不能直接和整数进行比较,必须先把str转换成整型,使用int()方法。
二、while语句: while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务,需要用冒号结尾。逻辑如下图:
三、random() 函数
在 random 模块下提供了如下常用函数:
random.seed(a=None, version=2):指定种子来初始化伪随机数生成器。
random.randrange(start, stop[, stop]):返回从 start 开始到 stop 结束、步长为 step 的随机数。其实就相当于 choice(range(start, stop, step)) 的效果,只不过实际底层并不生成区间对象。
random.randint(a, b):生成一个范围为 a≤N≤b 的随机数。其等同于 randrange(a, b+1) 的效果。
random.choice(seq):从 seq 中随机抽取一个元素,如果 seq 为空,则引发 IndexError 异常。
random.choices(seq, weights=None, cum_weights=None, k=1):从 seq 序列中抽取 k 个元素,还可通过 weights 指定各元素被抽取的权重(代表被抽取的可能性高低)。
random.shuffle(x[, random]):对 x 序列执行洗牌“随机排列”操作。
random.sample(population, k):从 population 序列中随机抽取 k 个独立的元素。
random.random():生成一个从0.0(包含)到 1.0(不包含)之间的伪随机浮点数。
random.uniform(a, b):生成一个范围为 a≤N≤b 的随机数。
random.expovariate(lambd):生成呈指数分布的随机数。其中 lambd 参数(其实应该是 lambda,只是 lambda 是 Python 关键字,所以简写成 lambd)为 1 除以期望平均值。如果 lambd 是正值,则返回的随机数是从 0 到正无穷大;如果 lambd 为负值,则返回的随机数是从负无穷大到 0。
import random
print( random.random() ) # 产生 0 到 1 之间的随机浮点数
print( random.randint(1,10) ) # 产生 1 到 10 的一个整数型随机数
print( random.uniform) ) # 产生 1.1 到 5.4 之间的随机浮点数,区间可以不是整数
print random.choice(['剪刀', '石头', '布']) # 从序列中随机选取一个元素
print( random.randrange(1,100,2) ) # 生成从1到100的间隔为2的随机整数
items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] # 将序列a中的元素顺序打乱
print random.shuffle(items)