av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

Python猜數字算法題詳解

瀏覽:2日期:2022-08-05 08:03:36

今天刷的第一道算法題,先拿一道簡單點的試試手,這道題目的要求是:

兩個人甲乙在猜數字,甲先從1,2,3三個數字中隨機抽3次,結果是guess。乙隨后也隨機抽三次,結果是answer。然后對比甲乙兩個人的結果。示例如下:

guess:[1,2,3], answer: [1, 2, 3]

那么結果就是猜對了3次

guess: [1,2,3] answer:[3,2,1]

那么結果就是猜對了1次

guess: [1,2,3], answer:[3, 3,1]

那么結果就是猜對了0次

即將guess和answer兩個作為參數輸入,返回猜對的次數。

我想出來的幾個答案如下所示:

答案1

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

思路是:使用zip將兩個列表進行組合,返回每個列表中單個元素組成的元組,然后循環對比。如果相等就將臨時變量值+1,最終返回統計結果。

答案2:

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

思路:轉念一想,發現自己想復雜了,因為不需要拼接,就可以直接取這兩個列表對應的值進行對比。就更簡單了,直接循環對比,有相等的情況將臨時變量+1,最后返回臨時變量即可。

答案3:

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

思路:既然可以直接對比,那么能不能再簡單點,我就想到了map函數,map函數第一個參數直接使用匿名函數來進行元素對比,然后收集函數執行結果。如果對比相等,結果是True,對比不相等,結果是False。

最后返回map函數直接結果的總和即可。

答案4:

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

思路:將guess和answer進行對比,這是我認為自己最差的一個答案,因為這種情況只適合這種簡短的列表對比,再長一點整個代碼就沒法看了。

內容擴展:

Python初學者小游戲:猜數字

游戲邏輯:電腦隨機生成一個數字,然后玩家猜數字,電腦提示猜的數字大了還是小了,供玩家縮小數字范圍,達到既定次數后,玩家失敗。若在次數內猜對,玩家獲勝。

涉及知識點:random.randint() , print() , input() ( raw_input() )

參考實現代碼:

#!/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 = 0ran = 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...') breakif count_num == diff: print ('You Lose...')

到此這篇關于Python猜數字算法題詳解的文章就介紹到這了,更多相關Python實現猜數字內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 中文字幕亚洲在线 | 91精品国产91久久久久久三级 | 日韩成人在线播放 | 新超碰97| 久久久久亚洲 | 欧美成人手机视频 | 一区二区三区视频在线观看 | 在线观看www | 久久久久免费精品国产小说色大师 | 国产日韩免费观看 | 91精品国产综合久久久动漫日韩 | 久久久久九九九九 | 国产精品久久av | 丁香六月伊人 | 在线欧美小视频 | 亚洲国产精品久久久久久 | 男女羞羞视频免费看 | 国产成人精品一区二区三 | 91久久久www播放日本观看 | 99色播 | 久久一二区 | 精品久久久久久亚洲综合网 | 久久一久久 | 国产精品a久久久久 | 天堂亚洲 | 伊人网在线播放 | 亚洲一区二区网站 | 国产99久久久国产精品 | 日韩在线观看一区 | 极品的亚洲 | 99视频在线播放 | 日韩一区二区三区视频 | 亚洲欧洲精品成人久久奇米网 | 亚洲三级视频 | 久久网站黄 | 亚洲成av人片在线观看 | 亚洲视频免费 | 成人免费视屏 | a毛片视频网站 | 狠狠躁躁夜夜躁波多野结依 | 91精品久久久久久久久久 |