欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python猜數(shù)字算法題詳解

 更新時(shí)間:2020年03月01日 08:59:28   作者:阿飛coach  
在本篇文章里小編給大家整理的是關(guān)于Python猜數(shù)字算法題詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。

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

兩個(gè)人甲乙在猜數(shù)字,甲先從1,2,3三個(gè)數(shù)字中隨機(jī)抽3次,結(jié)果是guess。乙隨后也隨機(jī)抽三次,結(jié)果是answer。然后對(duì)比甲乙兩個(gè)人的結(jié)果。示例如下:

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

那么結(jié)果就是猜對(duì)了3次

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

那么結(jié)果就是猜對(duì)了1次

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

那么結(jié)果就是猜對(duì)了0次

即將guess和answer兩個(gè)作為參數(shù)輸入,返回猜對(duì)的次數(shù)。

我想出來(lái)的幾個(gè)答案如下所示:

答案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將兩個(gè)列表進(jìn)行組合,返回每個(gè)列表中單個(gè)元素組成的元組,然后循環(huán)對(duì)比。如果相等就將臨時(shí)變量值+1,最終返回統(tǒng)計(jì)結(jié)果。

答案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

思路:轉(zhuǎn)念一想,發(fā)現(xiàn)自己想復(fù)雜了,因?yàn)椴恍枰唇?,就可以直接取這兩個(gè)列表對(duì)應(yīng)的值進(jìn)行對(duì)比。就更簡(jiǎn)單了,直接循環(huán)對(duì)比,有相等的情況將臨時(shí)變量+1,最后返回臨時(shí)變量即可。

答案3:

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

思路:既然可以直接對(duì)比,那么能不能再簡(jiǎn)單點(diǎn),我就想到了map函數(shù),map函數(shù)第一個(gè)參數(shù)直接使用匿名函數(shù)來(lái)進(jìn)行元素對(duì)比,然后收集函數(shù)執(zhí)行結(jié)果。如果對(duì)比相等,結(jié)果是True,對(duì)比不相等,結(jié)果是False。

最后返回map函數(shù)直接結(jié)果的總和即可。

答案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進(jìn)行對(duì)比,這是我認(rèn)為自己最差的一個(gè)答案,因?yàn)檫@種情況只適合這種簡(jiǎn)短的列表對(duì)比,再長(zhǎng)一點(diǎn)整個(gè)代碼就沒(méi)法看了。

內(nèi)容擴(kuò)展:

Python初學(xué)者小游戲:猜數(shù)字

游戲邏輯:電腦隨機(jī)生成一個(gè)數(shù)字,然后玩家猜數(shù)字,電腦提示猜的數(shù)字大了還是小了,供玩家縮小數(shù)字范圍,達(dá)到既定次數(shù)后,玩家失敗。若在次數(shù)內(nèi)猜對(duì),玩家獲勝。

涉及知識(shí)點(diǎn):random.randint() , print() , input() ( raw_input() )

參考實(shí)現(xiàn)代碼:

#!/usr/bin/env python 
# encoding: utf-8 
  
#使用print("",end=...)標(biāo)準(zhǔn) 
from __future__ import print_function 
  
import os 
import sys 
import time 
import random 
  
#輸入檢測(cè) 
  
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
  
#猜數(shù)字流程 
  
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...") 

到此這篇關(guān)于Python猜數(shù)字算法題詳解的文章就介紹到這了,更多相關(guān)Python實(shí)現(xiàn)猜數(shù)字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PyTorch快速搭建神經(jīng)網(wǎng)絡(luò)及其保存提取方法詳解

    PyTorch快速搭建神經(jīng)網(wǎng)絡(luò)及其保存提取方法詳解

    本篇文章主要介紹了PyTorch快速搭建神經(jīng)網(wǎng)絡(luò)及其保存提取方法詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Python環(huán)境搭建過(guò)程從安裝到Hello World

    Python環(huán)境搭建過(guò)程從安裝到Hello World

    這篇文章主要介紹了Python環(huán)境搭建過(guò)程從安裝到Hello World,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Python 進(jìn)程操作之進(jìn)程間通過(guò)隊(duì)列共享數(shù)據(jù),隊(duì)列Queue簡(jiǎn)單示例

    Python 進(jìn)程操作之進(jìn)程間通過(guò)隊(duì)列共享數(shù)據(jù),隊(duì)列Queue簡(jiǎn)單示例

    這篇文章主要介紹了Python 進(jìn)程操作之進(jìn)程間通過(guò)隊(duì)列共享數(shù)據(jù),隊(duì)列Queue,結(jié)合實(shí)例形式分析了Python進(jìn)程數(shù)據(jù)共享、隊(duì)列數(shù)據(jù)處理相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • python 實(shí)現(xiàn)多維數(shù)組(array)排序

    python 實(shí)現(xiàn)多維數(shù)組(array)排序

    今天小編就為大家分享一篇python 實(shí)現(xiàn)多維數(shù)組(array)排序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • python matlibplot繪制多條曲線圖

    python matlibplot繪制多條曲線圖

    這篇文章主要為大家詳細(xì)介紹了python matlibplot繪制多條曲線圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Pytorch Tensor的統(tǒng)計(jì)屬性實(shí)例講解

    Pytorch Tensor的統(tǒng)計(jì)屬性實(shí)例講解

    今天小編就為大家分享一篇Pytorch Tensor的統(tǒng)計(jì)屬性實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • 關(guān)于Python元祖,列表,字典,集合的比較

    關(guān)于Python元祖,列表,字典,集合的比較

    下面小編就為大家?guī)?lái)一篇關(guān)于Python元祖,列表,字典,集合的比較。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • Django2.2配置xadmin的實(shí)現(xiàn)

    Django2.2配置xadmin的實(shí)現(xiàn)

    這篇文章主要介紹了Django2.2配置xadmin的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • python socket模塊創(chuàng)建和使用套接字示例詳解

    python socket模塊創(chuàng)建和使用套接字示例詳解

    這篇文章主要為大家介紹了python socket模塊來(lái)創(chuàng)建和使用套接字示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Python實(shí)現(xiàn)異步IO的示例

    Python實(shí)現(xiàn)異步IO的示例

    這篇文章主要介紹了Python實(shí)現(xiàn)異步IO的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-11-11

最新評(píng)論