最近無事寫了乙個python程式,用來查詢五大聯賽積分榜資訊,寫的過程中也學到了一些東西,效果如下:
其中用到了正規表示式,prettytable庫,感覺這個輸出效果還挺好的,哈哈,我是皇馬球迷。**就不貼了,挺簡單的。
import urllib.request
import re
from prettytable import prettytable
global ran
def print_socre(l, teamname, rank,x):
l.insert(0,teamname)
x.add_row(l)
def check_lega(leganame):
if leganame in ['西甲', '意甲', '德甲', '法甲', '英超']:
return true
else:
return false
def get_html(leganame):
ligamap =
url = '' + ligamap[leganame] + '&vt=4'
response = urllib.request.urlopen(url)
html = response.read()
html = html.decode('utf-8')
return html
def get_teams(leganame):
teams =
html = get_html(leganame)
a = html.find('w_40') + 400
b = html.find('歷屆積分榜')
html = html[a:b]
z = re.findall(u'(span\>)([a-z][\u4e00-\u9fa5][0-9])(\
for each in range(len(z)):
# print(z)
return teams
def find_data(data):
l =
tem = re.findall(r'(\>)([0-9])(\
for i in range(5):
return l
def get_teaminfo(teamname, leganame,x): # 獲取球隊資訊
html = get_html(leganame)
a = html.find(teamname) + 22
b = html.find('li', a) - 2
data = html[a:b] # 獲取比賽資訊
global ran
ran += 1
print_socre(find_data(data), teamname, str(ran),x)
def get_board(leganame):
x = prettytable(["球隊", "已賽", "勝", "平", "負", "積分", "排名"])
x.padding_width = 1
x.align["球隊"]="1"
teams = get_teams(leganame)
#print_lable()
for each in teams:
get_teaminfo(each, leganame,x)
print(x)
if __name__ == '__main__':
while (true):
leganame = input('請輸入需要查詢的聯賽(西甲,意甲,德甲,法甲,英超):')
if check_lega(leganame):
ran = 0
get_board(leganame)
# break
else:
print('聯賽輸入錯誤,請重新輸入!')
continue
五大查詢演算法總結
一 順序查詢演算法 1.演算法描述 順序比較即可。2.平均查詢長度 n 1 2,其中n為表長。3.演算法實現 省略4.優化思想 根據經驗,目前被查到越多的元素,將來可能被查到的可能性也越大。所以可以考慮,每次查詢到乙個元素後,將它和直接前驅交換位置。如果上述的經驗從概率上來講是成立的,則可以加快順序...
演算法之五大查詢演算法
五大經典查詢演算法 線性查詢,通過 遍歷,乙個乙個比較 核心演算法 順序查詢 public static int orderlookup int list,int key return 1 折半查詢 只能用於有順序的陣列 將需要查詢的數與陣列的中值進行比較,若小於,right指標左移,大於則右移,每...
會員積分商城體系設計的五大要素
會員積分 體系的設計不只是簡單結合會員體系和積分運營,而是以會員使用者為中心的積分服務場景規劃的商業模式構建。我們知道積分服務場景和會員使用者權益的設計異常重要,是因為設計關係到積分 體系的搭建,是否能實現拉新 促活,再到成本和體系設計的核心。乙個好的積分服務場景規劃,可以幫助企業 商家長期以乙個低...