源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

python实现猜数字游戏(无重复数字)示例分享

  • 时间:2022-10-07 15:35 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python实现猜数字游戏(无重复数字)示例分享
[u]复制代码[/u] 代码如下:
import time, random class GuessNum:     def __init__(self):         self._num = ''         self.input_num = []         self.count = 1                                      #猜对所用次数         self.sec = 0                                           #猜对所用时间         self._generate_num()     def _generate_num(self):                        #产生不重复的四个数字         seq_zton = list(range(10))         for i in range(0, 4):             a = str(random.choice(seq_zton))   #选出一个数字             self._num += a             seq_zton.remove(int(a))                 #注意a的类型         self.sec = time.clock()                          #开始计时     def check_answer(self):         return self._num     def check_input(self):         num_pos, num_value = 0, 0               #位置对和数值对的分别的个数         tmp = input("Please input the number you guess(No repetition),or 'c' to check the answer:")         if tmp == 'c':             print(self.check_answer())             tof = self.check_input()             return tof         elif not tmp.isalnum or not len(tmp) == 4:             print("Wrong format!")             tof = self.check_input()                #需要优化             return tof         self.input_num = list(tmp)         lst_temp = list(self._num)         if self.input_num == lst_temp:          #猜对             self.prt_vic()             return True         for i in lst_temp:             if i in self.input_num:                 if lst_temp.index(i) == self.input_num.index(i):        #位置也相同                     num_pos += 1                     num_value += 1                 else:                     num_value += 1         self.prt_state(num_pos, num_value)         self.count += 1         return False     def prt_state(self, num_pos, num_value):         print("You've got %d numbers with the right position and %d numbers with the right value only" % (num_pos, num_value))     def prt_vic(self):         t = time.clock()         self.sec = t - self.sec         print("Congratulations!You have successfully got the right number!")         print("%d times and %.2f sec in total to get the right answer" % (self.count, self.sec)) gn = GuessNum() while True:     ss = gn.check_input()     if ss:         b = input("Continue? y/n:")         if b == 'n':             break         else:             gn = GuessNum()             continue
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部