跟著北京理工大學嵩天老師學習Python
視頻鏈接B站,嵩天老師零基礎學習視頻:https://www.bilibili.com/video/av19391909?p=2
程序設計語言:編譯型,一次性執行結束(c語言)和解釋型,逐條執行,便於維護(JavaScript,python等腳本語言)
拿到一個問題時:
- 分析問題的計算部分
- 確定功能,使用IPO方法進一步分析:輸入;處理;輸出。I(輸入input)P(處理process)O(output輸出)分析"
- 設計算法:計算公式
- 編寫程序
- 運行調試程序
程序設計的步驟:
- 確定程序的IPO
- 編寫程序
- 調試程序
問題小練習:如何利用溫度攝氏度和huashi華氏度進行轉換?
I(輸入input)P(處理process)O(output輸出)分析;
設計算法:
C = (F - 32)/ 1.8
F = C * 1.8 + 32
源碼如下:
1 while (True): 2 content = str(input(‘請輸入當前溫度:‘)) 3 if content[-1] in ["c","C"]: 4 huashi = int(content[:-1]) * 1.8 + 32 5 print("當前溫度為攝氏度{a},轉化為華氏度{b}".format(a = content,b = str(huashi) + ‘F‘)) 6 elif content[-1] in [‘f‘,‘F‘]: 7 sheshi = (int(content[:-1])- 32) / 1.8 8 print(‘當前溫度為華氏度{0},轉化為攝氏度{1}‘.format(content,str(sheshi) + ‘C‘)) 9 else: 10 print(‘輸入有誤‘)
為了提高學習興趣,跟著嵩天老師學習了一下turtle庫,這個庫可以在圖形化頁面生成圖形。
下面一段是一段生成蟒蛇源碼,大家可以自己敲一下,或者直接點擊源碼頂部按鈕,然後復制即可。
不懂得地方自行百度,搜索能力是必備的。
下面的源碼,利用是函數調用。先調用main(),然後從main()函數裏面調用drawSnake()函數,def 是定義函數。裏面的參數,嵩天老師都已經講解,我也註釋出來了。至於源碼怎麽編寫的,暫時不需要了解,只要先明白大概源碼的作用就OK了。
1 import turtle 2 def drawSnake(rad,angle,len,neckrad): 3 for i in range(len): 4 turtle.circle(rad,angle) # rad表示爬行圓形軌跡的半徑位置,正值為左,負值為右,angle表示小烏龜爬行的弧度值 5 turtle.circle(-rad,angle) 6 turtle.circle(rad,angle/2) 7 turtle.fd(rad) # forward簡寫,代表爬行的直線距離 8 turtle.circle(neckrad+1,180) 9 turtle.fd(rad*2/3) 10 11 def main(): 12 turtle.setup(1300,800,0,0) # 長度,高度,左上角坐標起始點 13 pythonsize = 60 14 turtle.pensize(pythonsize) # 寬度,小烏龜寬度 15 turtle.pencolor("green") # 小烏龜走過的軌跡顏色 16 turtle.seth(-40) # 小烏龜開始爬行的角度方向,參照數學象限 17 drawSnake(40,80,5,pythonsize/2) 18 main()
生成結果如下:
數據類型
數據類型就不詳細介紹了,整型,浮點型,復數型,字符型,文件型,元組,列表,集合,字典等。
接下來學習數字類型(輸一下下面的例子看看結果就知道區別,同時可以用下面的函數方法對其類型轉換):
- 整型 int(4) 轉為整數
- 浮點型 float(4) 轉為浮點數
- 復數型 complex(4) 轉換成復數
轉換方法就是:int(),float(),complex()
運算方法:
字符串切片索引
下面一個小練習,最好對應嵩天老師的視頻觀看,簡單的內容就不詳述了,看視頻了解。
輸入1到7,然後打印出分別對應的星期一到星期日
下面是本人作出的源碼,稍微多加了一點以後要寫到的內容,其中包括循環,函數,__main__,__name__方法。不必糾結個別不懂得地方,船到橋下自然直,等你學到這,自然就會了,筆者也是這樣過來的。
1 def cal(): 2 ‘‘‘ 3 輸入1到7,然後打印出分別對應的星期一到星期日 4 ‘‘‘ 5 for i in range(20): 6 content = "星期一星期二星期三星期四星期五星期六星期日" 7 a = int(input(‘請輸入星期幾,輸入用1到7數字代表:‘)) 8 if a in list(range(1,8)): 9 index = a * 3 10 output = content[index-3:index] 11 print(output) 12 else: 13 print("請重新輸入") 14 continue 15 if __name__ == ‘__main__‘: 16 cal()
列表的操作
小遊戲,利用turtle庫繪制五角星並填充。可以復制這段代碼運行一下,同樣試著更改一下參數,看看有什麽變化。
1 from turtle import Turtle 2 p = Turtle() 3 p.speed(1) 4 p.pensize(5) 5 p.color(‘black‘,‘yellow‘) 6 p.begin_fill() 7 for i in range(5): 8 p.fd(200) 9 p.right(144) 10 p.end_fill()
輸出結果:
網絡爬蟲---robots協議
robots協議就是不被允許的爬蟲
例子:看一下百度的robots協議
網址:http://www.baidu.com/robots.txt
User-agent:後面指的被百度禁止的惡意爬蟲,
disallow:後面的是被禁止的通配符類型,最後一個不允許爬蟲訪問的資源目錄
京東的robots協議,被京東禁止的爬蟲。在網址後面加/robots.txt就可以了。https://www.jd.com/robots.txt
QQ的robots協議https://www.qq.com/robots.txt
爬取網頁源碼通用框架:(為防止異常外加try :語句 except:語句)
1 # 通用爬取網頁的代碼框架 2 import requests 3 def getHtmlText(url): 4 try: 5 r = requests.get(url,timeout = 5) 6 r.raise_for_status() # 如果狀態不是200,引發HttpError異常 7 r.encoding = r.apparent_encoding 8 return r.text 9 except : # except Exception as e 10 return "產生異常" 11 if __name__ == ‘__main__‘: 12 url = "www.baidu.com" 13 print(getHtmlText(url))
跟著北京理工大學嵩天老師學習Python