1.測試球賽程式中的所有函式
import random
from math import *
def printintro():#列印程式的介紹性資訊
print("模擬桌球競賽")
print("學號23")
print("程式執行需要a和b的能力值(以0到1之間的小數表示)")
def getinputs():#獲得使用者輸入的引數
a = eval(input("請輸入選手a的能力值(0-1): "))
b = eval(input("請輸入選手b的能力值(0-1): "))
h= eval(input("請輸入一場要打幾局:"))
n = eval(input("模擬比賽的場次: "))
return a, b, h,n
def printsummary(winsa, winsb):
n = winsa + winsb
print("競技分析開始, 共模擬{}場比賽".format(n))
print("選手a獲勝{}場比賽, 佔比".format(winsa, winsa/n))
print("選手b獲勝{}場比賽, 佔比".format(winsb, winsb/n))
def gameover(scorea, scoreb):
g=scorea-scoreb
if (abs(g)==2 and scorea> 10 and scoreb> 10) or (g> 0 and scorea==11) or (g<0 and scoreb==11):
return scorea,scoreb
def simonegame(proba, probb,h):#模擬一場比賽
for i in range(h): #模擬七局四勝或五局三勝為一場
serving = "a"
rounda =roundb=0 #分別為隊伍a和b的贏得的比賽的局次
scorea, scoreb = 0, 0
while not gameover(scorea, scoreb): #模擬一局比賽
rounda=roundb=0
if serving == "a":
if random.random() < proba:
scorea += 1
else:
serving = "b"
else:
if random.random() < probb:
scoreb += 1
else:
serving = "a"
if scorea>scoreb:
rounda += 1
else:
roundb += 1
return rounda,roundb
def simngames(n ,proba, probb,h):#利用a,b的的能力值模擬n場比賽
winsa, winsb = 0, 0
for i in range(n):
rounda , roundb = simonegame(proba, probb,h)
if rounda >roundb:
winsa += 1
else:
winsb += 1
return winsa, winsb
def main():
printintro()
proba, probb, h,n = getinputs()#分別為隊伍a和b的能力值,一場的局數,比賽的場次
winsa, winsb = simngames(n, proba, probb,h)#分別為隊伍a和b的贏得的比賽的場次
printsummary(winsa, winsb)
if h==7:
print('此次模擬單打淘汰賽')
else:
print('此次模擬雙打淘汰賽或者是團體淘汰賽')
main()
2.爬蟲測試(對必應網頁)
import requests
def gethtmltext(url):
print("第",i+1,"次訪問")
try:
r=requests.get(url,timeout=30)
r.raise_for_status()
r.encoding='utf-8'
print("網路狀態碼:",r.status_code)
print("text屬性長度:",len(r.text))
print("content屬性長度:",len(r.content))
return r.text
except:
return "error"
url=""
#print(gethtmltext(url))
for i in range(20):
print(gethtmltext(url))
3這是乙個簡單的html頁面,請保持為字串,完成後面的計算要求。
from bs4 import beautifulsoup
import re
html = beautifulsoup("\n\n\n\n\n我的第一段落。
\n\n\n","html.parser")
print(html.head,"20")
print(html.body)
print(html.find_all(id="first"))
r=html.text
pattern = re.findall(u'[\u1100-\ufffdh]+?',r)
print(pattern)
4.中國大學排名(爬蟲)(2019)
輸入如下**:
import requests
from bs4 import beautifulsoup
import csv
url = ""
response = requests.get(url)
soup = beautifulsoup(response.content.decode('utf-8'), 'lxml')
all_movies = soup.find('div', id = "showing-soon")
#寫模式開啟csv檔案
csv_obj = open('data.csv', 'w', encoding="utf-8")
#寫入一行標題
csv.writer(csv_obj).writerow([("排名","學校名稱","省市","總分","科研規模"])
for each_university in all_university.find_all('div', class_ = "item"):
all_a = each_university.find_all('a')
all_li = each_university.find_all('li')
university_ranking= all_a[1].text
university_name = all_a[1]['href']
university_province = all_li[0].text
university_total score = all_li[1].text
university_scientific scale = all_li[2].text
#逐個寫入大學資訊
csv.writer(csv_obj).writerow([movie_name,movie_href,movie_date,movie_type,movie_area,movie_lovers])
#關閉csv_obj.close()
print("finshed")
第乙個 爬蟲和測試
1.爬蟲 如下 import requests def gerhtmltext url try r requests.get url,timeout 1 r.raise for status r.encoding utf 8 return r.text except return 訪問錯誤 url ...
第乙個爬蟲和測試
一 用之前學過的try except進行除錯 測試球賽的gameover函式 可以看到是正確的,我們也可以試一試其他的數字比例。在這裡就不一一試了。requests庫是乙個簡潔且簡單的處理http請求的第三方庫。get 是對應與http的get方式,獲取網頁的最常用方法,可以增加timeout n ...
第乙個爬蟲和測試
一 什麼是網路爬蟲?資訊時代,每天我們都在上網,每天我們都在瀏覽器上訪問 我們開啟乙個網頁,接著又跳轉到另乙個網頁,看到喜歡的內容,或者是一段幽默的句子,或者是一張美女的,我們會選擇將其儲存下來,當數量很多的時候,我們就會選擇用程式來實現這樣乙個過程,實現自動瀏覽網頁,自動根據我們的要求,儲存我們想...