python猜数字统计游戏次数_猜数字游戏的实现(Python3.5)

标签:

最近实现了一个猜数字的游戏,用python写的,本人python技术很渣,在不断百度的情况下,总算完成了这个猜数字的游戏,写上一点心得,也许以后有用。

猜数字游戏规则特别简单,就是用户猜一个4位数字,如果位置正确则记为A,数字正确则记为B(例如:被猜数字1234,用户输入了1456;则返回1A1B)

首先,我定义了一个猜数字的大类,写入了初始化方法后,加了一个生成4位不重复数字的方法,具体逻辑是这样:首先生成一个10位不重复的序列,然后利用List的pop方法,返回结果,然后把每个结果用字符串累加的方法加起来,用while循环控制次数,最后得到4位不重复的数字字符串,其它额外要求根据实际情况增加。这里用到了random模块,所以要import random

第一步:

import random

class guessNumber():

‘‘‘

猜数字游戏:

1、用户输入一组数字后,返回以*A*B的方式返回结果

2、1A代表有一个正确的数字位置正确,1B代表有一个数字正确,但是位置不正确

‘‘‘

def __init__(self):

self.guess_number = ‘‘ #被猜测的数字

#生成随机不重复的4位数,包括首位位0的数字,如(0567)

def genRandomNum(self):

if self.guess_number == ‘‘: #对象中guess_number参数有没有纸,如果有就直接返回传入的值

result = ‘‘ #生成的数字

l1 = [str(i) for i in range(10)] #l1是一个类似[0,1,2,3,4,5,6,7,8,9]序列

while(result.__len__() < 4): #用while循环控制生成数字的位数

tmp = l1.pop(random.randrange(l1.__len__())) #用list的pop方法返回对应的数字,这样可以避免重复

if tmp == ‘0‘: #判断首位是否为0,如果是0,那么需要加上之前去除的元素

l1.append(‘0‘) #把之前删除的“0”重新加上

tmp = l1.pop(random.randrange(l1.__len__())) #再来一次

result += tmp #字符串累加,响应while的循环条件,到4位时停止循环

else:

result += tmp

else:

result = str(self.guess_number) #如果已经设置了guess_number,那么直接返回设置的结果

return result #返回生成的4位不重复的数字(仅限于自动生成,其它途径传入的不算)

if __name__ == ‘__main__‘:

guess = guessNumber()

target = guess.genRandomNum()

print(target)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值