第一個爬蟲及測試

球賽程序測試:dom

首先輸入輸出函數通常沒問題,因此就不測試了。函數

一、simOneGame一局比賽函數:測試

由於這個函數中包含了gameover函數,因此先去測試一下gameover函數:網站

def gameOver(x,c, d):
    if x!=5:
        if c>=25 and d>=25:
            if c-d>2 or d-c>2:
                return 1
    else:
        if c>=15 and d>=15:
            if c-d>2 or d-c>2:
                return 1

這時調用一下函數,賦特殊值試一下:google

def gameOver(x,c, d):
    if x!=5:
        if c>=25 and d>=25:
            if c-d>2 or d-c>2:
                return 1
    else:
        if c>=15 and d>=15:
            if c-d>2 or d-c>2:
                return 1
if gameOvre(1,25,25):
    print('錯誤')
if gameOver(1,25,28):
    print('正確')
if gameOvre(5,15,15):
    print('錯誤')
if gameOver(1,15,18):
    print('正確')

運行後結果都正確url

接着測試一局比賽的函數:spa

def simOneGame(x,probA, probB):    # 進行一場比賽
    a=x
    scoreA, scoreB = 0, 0   # 初始化AB的得分
    serving = 'A'         # 首先由A發球
    while not gameOver(a,scoreA, scoreB):  #用while循環來執行比賽
        if serving == 'A':
            if random() < probA:   # random() 方法返回隨機生成的一個實數,它在[0,1)範圍內。
                scoreA += 1     # 用隨機數來和能力值比較從而分出勝負
            else:
                serving = 'B'
        else:
            if random() < probB:
                scoreB += 1
            else:
                serving = 'A'
    return scoreA, scoreB

這裏要測試能夠加入一個print語句,輸出結果看看code

從這些數據能夠看出,沒問題。orm

二、測試wuju函數:blog

這個是一次比賽五局三勝的函數:

def wuju(probA,probB):
    A,B=0,0
    for i in range(4):
        scoreA,scoreB=simOneGame(4,probA,probB)
        print(scoreA,scoreB)
        if scoreA>scoreB:
            A+=1
        else:
            B+=1
    if A>B:
        return 1
    elif B>A:
        return 0
    else:
        scoreA,scoreB=simOneGame(5,probA,probB)
        if scoreA>scoreB:
            return 1
        else:
            return 0

也能夠經過賦特殊值測試。

三、simNGames(),屢次比賽函數:

def simNGames(n, probA, probB):    #進行N場比賽
    winsA, winsB = 0, 0    # 初始化AB的勝場數
    for i in range(n):
        if wuju(probA,probB):
            winsA += 1
        else:
            winsB += 1
    return winsA, winsB

經過print輸出結果看看就知道了。

 

 個人第一個爬蟲:

# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""
import requests
def getht(url):
    try:
        r=requests.get(url,timeout=30)
        r.raise_for_status()
        r.encoding='utf-8'
        return r.text
    except:
        return '錯誤'
def main():
    url="http://baidu.com"
    print(getht(url))
main()

第一個爬蟲爬百度沒什麼問題:

運行結果就是這樣,

但一旦要爬谷歌的主頁,就出現了問題,運行結果爲錯誤。我猜想是牆的問題

因此我爬了一個轉谷歌的網站,www.google.cn。結果以下:

這是一次的結果,讓咱們爬取20次試試:

這個網站咱們能夠爬取20次沒什麼問題,能夠看出這個網站的粗糙。和google不能比。

使用len()函數就能夠輕鬆計算text的長度:

 print("r.text的長度是:{}".format(len(getht(url))))

結果:

相關文章
相關標籤/搜索