Python猜数字算法题详解与游戏实现

江岸
江岸
发布时间:2026-10-11 | 3人浏览过
原创

本文详解Python猜数字算法题,对比四种解题思路:zip组合对比、索引循环、map函数与条件分支。同时提供完整的猜数字游戏代码,涵盖输入校验、随机数生成与游戏逻辑,帮助读者掌握列表操作与基础算法。

算法题解题思路对比

题目要求对比 guess 和 answer 两个列表,返回对应位置相等的次数。以下是四种常见的实现方式:

方法一:使用 zip 组合列表

通过 zip 函数将两个列表组合成元组,遍历元组并对比元素是否相等。这种方法代码简洁,逻辑清晰。

class Solution:
  def game(self, guess: List[int], answer: List[int]) -> int:
    count = 0
    for i in zip(guess, answer):
      if i[0] == i[1]:
        count += 1
    return count

方法二:索引循环对比

直接通过索引遍历列表,对比对应位置的值。这种方法直观易懂,适合初学者理解列表操作。

class Solution:
  def game(self, guess: List[int], answer: List[int]) -> int:
    count = 0
    for i in range(3):
      if guess[i] == answer[i]:
        count+=1
    return count

方法三:使用 map 函数

利用 map 函数和匿名函数进行元素对比,返回 True 的总和。这种方法代码简短,但可读性随列表长度降低。

class Solution:
  def game(self, guess: List[int], answer: List[int]) -> int:
    return sum(map(lambda x,y: x==y, guess, answer))

方法四:条件分支判断

通过多层条件分支判断每个位置的相等情况。这种方法仅适合简短列表对比,代码冗长且不易维护。

class Solution:
  def game(self, guess: List[int], answer: List[int]) -> int:
    if guess == answer:
      return 3
    elif guess[0] == answer[0]:
      if guess[1] == answer[1]:
        return 2
      else:
        return 1
    elif guess[1] == answer[1]:
      if guess[2] == answer[2]:
        return 2
      else:
        return 1
    elif guess[2] == answer[2]:
      return 1
    else:
      return 0

猜数字游戏实现

猜数字游戏逻辑为电脑随机生成数字供玩家猜测,电脑提示猜的数字大了还是小了,玩家需在既定次数内猜对数字。以下是完整的代码实现:

#!/usr/bin/env python 
# encoding: utf-8 

#使用print("",end=...)标准 
from __future__ import print_function 

import os 
import sys 
import time 
import random 

#输入检测 

while 1: 
  os.system('cls') 
  print ("Hello , Welcome to Guess_Number Games...The Number is between 1 - 10...") 
  print ("Please input the level you want(1~10): ",end = '') 
  level = raw_input("") 
  diff = 11-int(level) 
  if diff > 10 or diff <1: 
    print ("Invalid Input...") 
    time.sleep(0.3) 
  else: 
    break

#猜数字流程 

count_num = 0
ran = random.randint(1,10) 
while count_num < diff: 
  count_num +=1
  print (str(count_num)+": "+"Please input the number you guess: ",end = '') 
  number = raw_input() 
  number = int(number) 
  if number < ran: 
    print ("Too Little...") 
    continue
  elif number > ran: 
    print ("Too Big...") 
    continue
  else: 
    print ("Congraduation! You Win...") 
    break
if count_num == diff: 
  print ("You Lose...") 

该游戏涉及 random.randint()、print() 和 input() 或 raw_input() 等知识点,适合初学者练习。

总结

本文通过对比四种解题思路,展示了Python在处理列表对比时的多种方法。同时,完整的猜数字游戏代码帮助读者理解随机数生成与游戏逻辑的实现。以上就是Python猜数字算法题详解与游戏实现的详细内容,更多关于Python算法的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表