如果高考考Python,這些題目你會做嗎?
高考贈言
春去秋來又是一年高考季,首先讓我們祝福即將踏入考場的莘莘學(xué)子,希望他們能考上理想的大學(xué),雖然對有些人來說大學(xué)只是換個地方敲(da)代(you)碼(xi),但還是祝愿他們能去好學(xué)校,畢竟網(wǎng)速快點。
言歸正傳,相信大家都知道Python入選山東小學(xué)教材、浙江省信息高考的事兒,那么如果有一天Python正式進入高考,會有哪些題目?你又能不能做出來呢?
那么今天就斗膽出一回題,請諸位高才作答——
1、送分題
完形填空:人生苦短,_______。
答案:我用Python
2、基礎(chǔ)題
簡答:這兩個參數(shù)是什么意思:*args,**kwargs?我們?yōu)槭裁匆褂盟鼈?(某面試題)
答案:如果我們不確定要往函數(shù)中傳入多少個參數(shù),或者我們想往函數(shù)中以列表和元組的形式傳參數(shù)時,那就使要用*args;如果我們不知道要往函數(shù)中傳入多少個關(guān)鍵詞參數(shù),或者想傳入字典的值作為關(guān)鍵詞參數(shù)時,那就要使用**kwargs。args和kwargs這兩個標(biāo)識符是約定俗成的用法,你當(dāng)然還可以用*bob和**billy,但是這樣就并不太妥。
3、實操題
項目考核:如何用Python爬取《王者榮耀》皮膚圖片?(新手爬蟲實戰(zhàn)案例)
答案:
以下是參考答案
首先進入所有英雄列表,你會看到下圖
在這個網(wǎng)頁中包含了所有的英雄,頭像及英雄名稱。
♦單個英雄
點擊其中一個英雄的頭像,例如***個“百里守約”,進去后如下圖:
△網(wǎng)址為https://pvp.qq.com/web201605/herodetail/196.shtml
網(wǎng)址中196.shtml以前的字符都是不變的,變化的只是196.shtml。而196是“百里守約”這個英雄所對應(yīng)的數(shù)字,要想爬取圖片就應(yīng)該進入每個英雄皮膚圖片所在的網(wǎng)址,而所有英雄的網(wǎng)址的關(guān)鍵就是每個英雄對應(yīng)的數(shù)字。那么這些數(shù)字怎么找呢?
♦英雄數(shù)字
在所有英雄列表中,打開瀏覽器的開發(fā)者工具,刷新,找到一個json格式的文件,如圖所示:
這時就會看到所有英雄對應(yīng)的數(shù)字了。在上圖所示的Headers中可以找到該json文件對應(yīng)的網(wǎng)址形式。將其導(dǎo)入Python,把這些數(shù)字提取出來,然后模擬出所有英雄的網(wǎng)址即可
小節(jié)代碼如下(Ubuntu(Linux)系統(tǒng)):
- #爬取王者榮耀英雄圖片
- #導(dǎo)入所需模塊
- import requests
- import re
- import os
- #導(dǎo)入json文件(里面有所有英雄的名字及數(shù)字)
- url='http://pvp.qq.com/web201605/js/herolist.json' #英雄的名字json
- head={'User-Agent':'換成你自己的head'}
- html = requests.get(url,headers = head)
- html=requests.get(url)
- html_json=html.json()
- #提取英雄名字和數(shù)字
- hero_name=list(map(lambda x:x['cname'],html_json)) #名字
- hero_number=list(map(lambda x:x['ename'],html_json)) #數(shù)字
♦下載圖片
現(xiàn)在可以進入所有英雄的網(wǎng)址并爬取網(wǎng)址下的圖片了。進入一個英雄的網(wǎng)址,打開開發(fā)者工具,在NetWork下刷新并找到英雄的皮膚圖片(記住是大圖)。如圖所示:
然后在Headers中查看該圖片的網(wǎng)址。會發(fā)現(xiàn)皮膚圖片是有規(guī)律的。我們可以用這樣的方式來模擬圖片網(wǎng)址:'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/'+str(v)+'/'+str(v)+'-bigskin-'+str(u)+'.jpg',在該網(wǎng)址中只有str(v)與str(u)是改變的(str( )是Python中的一個函數(shù)),str(v)是英雄對應(yīng)的數(shù)字,str(u)只是圖片編號,例如***個圖片就是1,第二個就是2,第三個……而一個英雄的皮膚應(yīng)該不會超過12個(可以將這個值調(diào)到20等)。接著就是下載了。
下載的代碼如下(有些地址要換成你自己的):
下載的代碼如下(有些地址要換成你自己的):
執(zhí)行完上面的代碼后只需要執(zhí)行main函數(shù)就行了

爬取下來的圖片是這樣,每個文件夾里面是該英雄對應(yīng)的圖片,如下圖:
以上呢就是整理的幾個Python考題了,不知道你會做幾道呢?