二个python猜数字游戏的实例代码

发布时间:2019-08-08编辑:脚本学堂
python猜数字游戏的实现代码,用python实现猜数字游戏,主要是使用python随机数的原理来实现的,这里分享二个例子,学习下python猜数字游戏的实现原理。

一、python简单猜数字游戏

给定一个1-99之间的数,让用户猜数字,当用户猜错时会提示用户猜的数字是过大还是过小,知道用户猜对数字为止,猜对数字用的次数越少成绩越好。

代码:
 

复制代码 代码示例:

#!/usr/bin/python

import random
n = random.randint(1, 99)
guess = int(raw_input("Enter an integer from 1 to 99: "))
while n != "guess":
  print
  if guess < n:
    print "guess is low"
    guess = int(raw_input("Enter an integer from 1 to 99: "))
  elif guess > n:
    print "guess is high"
    guess = int(raw_input("Enter an integer from 1 to 99: "))
  else:
    print "you guessed it!"
    break
  print

二、python猜数字游戏(无重复数字)

python实现猜数字游戏,且要求无重复数字。

代码:
 

复制代码 代码示例:

#!/usr/bin/python

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