初学python,被作业难到了,做一个猜数游戏,给十次机会,写完运行不出来,求大佬看看

初学python,被作业难到了,做一个猜数游戏,给十次机会,写完运行不出来,求大佬看看,第1张

import random

target=random.randint(1,1000)

count=0

while True:

  try:

      guess=eval(input("猜猜这个数是什么,一共有10次机会哦"))

  except:

      continue

  print("请输入一个整数"李携)

  if guess<target:

      print("猜小了")

      count=+1

  elif guess>target:

      print("哪斗伏猜大了")

      count=+1

  elif count==10:

      print("机会用完了,欢迎下次再来!")

      break

  else:

   销枣   print("猜对了,正确答案为",target,"/n","一共猜了{}次".format(count))

      break

核心代码给你,具体的功能还需要自己完善。

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

import random

while 1:

    mx = int( input( "请输入猜数范围(50以内):1-" ) )

    while (mx > 50 or mx < 1):

        mx = int( input( "请输入猜数范围(50以内):1-" ) )

    洞唤print( "下面将产生一个1-{0}的随机数".format( mx ) )

    num = random.Random().randint( 0, mx )

    gCount = 0

    while gCount < 5:

        gCount += 1

        gNum = int( input( "猜一下是茄卖多少:" 颤颤逗) )

        if gNum == num:

            print( "你猜对了!\n这次的得分是{0}".format( 2 ^ (6 - gCount) * mx ) )

            break

        elif gNum > num:

            print( "太大了~~" )

        else:

            print( "太小了~~" )

    if input( "再来一次? yes/no " ).lower() != "yes": break


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12510052.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存