為了讓你們10分鐘入門Python,我花5小時寫了7個案例和這篇文章!!!
最近系統學習了一遍python基礎知識,學著學著靈光一閃,想到有沒有快速掌握知識的方法,一般正常的邏輯是邊看基礎知識邊練習案例,是一個書由厚變薄的程序,
不過現在節奏這么快,尤其是互聯網公司,排除周末在家看孩子的時間,幾乎沒有時間和精力再進行深度學習,所以這篇文章就誕生了,
本文通過案例入手直接結合python知識點,可以快速掌握python基礎知識點,
案例名稱
- 計算圓形面積
- 輸入字符并倒序輸出
- 猜數字游戲
- 按照詩句格式輸出詩詞
- 統計文本中出現次數最多的10個單詞(txt)
- web頁面元素提取
- 文本進度條
計算圓形面積
知識點:print 結合format()函式實作輸出格式,
固定的公式:
print(<輸出字串模板>.format(<變數1>,<變數2>,<變數3>))
實作代碼:
r = 25 # 圓的半徑是25 area = 3.1415 * r * r #圓的公式 print(area) print('{:.2f}'.format(area) ) # 只輸出兩位小數
新手易錯點:
format前的字串模板格式‘{:.2f}’ 經常會寫錯,其中一個{}對應一個format里面的引數,
輸入字符并倒序輸出
核心思想:找到最后一個元素并輸出,
知識點:
- 輸入使用input函式
- 計算長度使用len()函式
- 輸出函式結尾使用end=’‘,作用在輸出的字符后方添加空字串
#輸入文本 s=input('請輸入一段文本:') #計算輸入內容的長度并賦值給i i=len(s)-1 #倒序回圈輸出 while i>=0: print(s[i],end='') i=i-1
實作效果:代碼可以執行
猜數字游戲
隨機產生一個數字,并判斷輸入的數字和這個亂數直到猜測成功,
知識點:
- 使用random.randint()函式生成一個亂數字
- while()回圈,當未滿足條件一直執行,滿足條件break跳出回圈
- 輸入數字eval函式結合input,將字串型別轉換成整數
- if 三分支條件判斷,if elif else 格式
實作代碼:
import random #生成亂數 a=random.randint(0,1000) #統計次數 count=0 while True: number=eval(input('請輸入0到1000之間的一個數:')) count=count+1 #判斷比較兩個數 if number>a: print('輸大了') elif number<a: print('輸小了') else: print('猜對了') break print('猜了次數是:',count)
效果圖:代碼可以執行

按照詩句格式輸出詩詞
原來格式:
人生得意須盡歡,莫使金樽空對月,
天生我材必有用,千金散盡還復來,
輸出效果:
人生得意須盡歡
莫使金樽空對月
天生我材必有用
千金散盡還復來
設計思路:
- 將所有標點符號替換為\n
- 文本居中對齊顯示
知識點:
- 替換函式line.replace(變數名,要替換的值)
- 居中對齊line.center(寬度)
- 函式呼叫,將文本變數txt傳入替換函式linesplit中
txt = ''' 人生得意須盡歡,莫使金樽空對月, 天生我材必有用,千金散盡還復來, ''' #定義一個函式,實作將標點符號替換為\n def linesplit(line): plist = [',', '!', '?', ',', ',', '!', '?'] for p in plist: line=line.replace(p,'\n') return line.split('\n') linewidth = 30 # 預定的輸出寬度 #定義一個函式,實作居中對齊 def lineprint(line): global linewidth print(line.center(linewidth)) #呼叫函式 newlines=linesplit(txt) for newline in newlines: lineprint(newline)
統計文本中出現次數最多的10個單詞
我們來看看實作效果

步驟拆分:
- 首先,將文本內容統一為小寫,使用lower()函式
- 再次,將文本中特殊字符替換為空格,replace()函式
- 按空格將文本進行切割,使用split()函式
- 統計單詞出現的次數
- 按頻率從大到小排序 sort()函式
- 按照固定格式輸出 ,使用format()函式
按照上面的步驟實作代碼,
首先,將文本內容統一為小寫,使用lower()函式:
def gettxt(): #讀取檔案 txt=open('hamlet.txt','r').read() txt=txt.lower()
再次,將文本中特殊字符替換為空格,replace()函式:
for ch in ''!"#$%&()*+,-./:;<=>?@[\]^_‘{|}~':' txt=txt.replace('') return txt
按空格將文本進行切割,使用split()函式:
hmlttxt=gettxt()
words=hmlttxt.split()
統計單詞出現的次數:
counts=0 for word in words: counts[word]=counts.get(word,0)+1 #對word出現的頻率進行統計,當word不在words時,回傳值是0,當word在words中時,回傳+1,以此進行累計計數
按頻率從大到小排序 items()sort()排序函式:
items=list(counts.items())
items.sort(key=lambada x:x[1],reverse=True)
上面的x可以是任意字母,reverse=True倒序排序,默認升序,
按照固定格式輸出 ,使用format()函式:
for i in range(10) word,count=item[i] print('{0:<10}{1:>5}'.format(word,count))
完整代碼:
# 首先,將文本內容統一為小寫,使用lower()函式 def gettxt(): txt=open('hamlet.txt','r').read() txt=txt.lower() # 將文本中特殊字符替換為空格,replace()函式 for ch in '!"#$%&()*+,-./:;<=>?@[\]^_‘{|}~': txt=txt.replace(ch,'') return txt # 按空格將文本進行切割,使用split()函式 hamlettxt=gettxt() words=hamlettxt.split() # 統計字數 counts={} for word in words: counts[word]=counts.get(word,0)+1 # 按頻率從大到小排序 sort()函式 items=list(counts.items()) items.sort(key=lambda x:x[1],reverse=True) # 按照固定格式輸出 ,使用format()函式 for i in range(10): word, count=items[i] print("{0:<10},{1:>5}".format(word,count))
web頁面元素提取圖片url路徑資訊
這個功能目的主要是替換函式 及 自頂向下的設計思想,
實作的效果:

對整個功能拆分為如下程序:
- 首先,提取頁面所有元素
- 其次,提取圖片的url路徑
- 然后,將路徑資訊輸出顯示
- 最后,將這些路徑保存到檔案中
我們把上面幾個步驟,每個步驟封裝成一個函式,最后main()函式進行呼叫,其中提取圖片的url路徑為核心,
- 提取頁面所有元素
涉及到知識點:檔案打開、讀取及關閉,
def gethtmllines(htmlpath): #檔案打開 f=open(r,'htmlpath',encoding='utf-8') #檔案讀取 ls=f.readlines() #檔案關閉 f.close() return ls
- 提取圖片的url路徑
原始碼:

知識點:
- 串列形式存放截取后的地址
- 串列的切割,split()函式
def geturl(ls): urls=[] for line in ls: if 'img' in line: url=line.split('src=https://www.cnblogs.com/cds765/p/')[-1].split('"')[1] urls.append(url)
- 將路徑資訊輸出顯示
知識點:for回圈將路徑資訊輸出,
for回圈將路徑資訊輸出 def show(urls): count=0 for url in urls: print('第{:2}個url{}'.format(count,url)) count+=1
- 將這些路徑保存到檔案中
知識點:檔案的寫入,
def save(filepath,urls): f=open(filepate,'w') for url in urls: f.write(url+'\n') f.close()
- main()函式,將上面的函式進行組合
def main(): inputfile = 'nationalgeographic.html' outputfile = 'nationalgeographic-urls.txt' htmlLines = getHTMLlines(inputfile) imageUrls = extractImageUrls(htmlLines) showResults(imageUrls) saveResults(outputfile, imageUrls)
最終代碼:python
# Example_8_1.py #1. 按行讀取頁面所有內容 def getHTMLlines(htmlpath): f = open(htmlpath, "r", encoding='utf-8') ls = f.readlines() f.close() return ls #2. 提取http路徑 def extractImageUrls(htmllist): urls = [] for line in htmllist: if 'img' in line: url = line.split('src=https://www.cnblogs.com/cds765/p/')[-1].split('"')[1] print if 'http' in url: urls.append(url) return urls #3. 輸出鏈接地址 def showResults(urls): count = 0 for url in urls: print('第{:2}個URL:{}'.format(count, url)) count += 1 #4. 保存結果到檔案 def saveResults(filepath, urls): f = open(filepath, "w") for url in urls: f.write(url+"\n") f.close() def main(): inputfile = 'nationalgeographic.html' outputfile = 'nationalgeographic-urls.txt' htmlLines = getHTMLlines(inputfile) imageUrls = extractImageUrls(htmlLines) showResults(imageUrls) saveResults(outputfile, imageUrls) main()
一句話總結:這個小案例可熟練掌握檔案的讀、寫操作,可以體會函式的思想以及split()函式的拆分,
文本進度條
知識點:
- 引入time庫
- print()輸出格式
- 其中運用到了for i in range():回圈,在回圈末尾通過format函式,將其內的值賦予槽中,
實作代碼:
import time def bar(scale): print('===========執行開始============') for i in range(scale + 1): a = '*' * i b = '.' * (scale - i) c = (i / scale) * 100 print('\r{:^3.0f}%[{}->{}]'.format(c, a, b), end = '') time.sleep(0.1) print('\n===========執行結束============')
效果圖:從0%輸出到100%
總結
上面主要介紹了python的基礎功能,建議大家熟練掌握,主要知識點如下:
- input函式實作輸入
- print結合format()函式對結果進行輸出
- 計算字串長度len()函式
- 使用random.randint()函式生成亂數字
- eval函式結合input,將字串型別轉換成整數
- if 三分支條件判斷,if elif else 格式
- 替換函式line.replace(變數名,要替換的值)
- 文本內容統一為小寫,使用lower()函式
- 文本中特殊字符替換為空格,replace()函式
- 文本進行切割,使用split()函式
- 從大到小排序 sort()函式
軟體測驗人員為什么選擇學習Python不是Java
Python 語法簡潔而清晰,并具有豐富和強大的類別庫,可以輕易實作很多功能,對于初學編程者來說,Python 是最好的入門語言,沒有之一, 用 Python 開發小工具,撰寫速度快且非常輕量級,實際作業當中,非常適合團隊在測驗資源不充足的情況下,快速開發測驗工具,而且通常實作一個功能,Python 的代碼量是別的語言如 Java 的 1/3-1/5,目前,越來越多大廠新工具的開發,技術堆疊都選擇了 Python,因此,通過掌握 Python 自動化測驗技術進入軟體測驗和質量保障領域,已經是測驗行業新人的入行路徑最佳選擇,如果你是想完成公司里面的自動化測驗的整體部署,那么,Python可以幫你輕松實作:
- UI自動化測驗(Python+Selenium等)
- 介面測驗(Python requests等)
- 性能測驗(Python Locust等)
- 安全性測驗(Python Scapy等)
- 兼容性測驗(Python+Selenium等)
想象一下,當別人還在苦逼點點點,忙忙碌碌,加班加點的時候,你能吃著火鍋唱著歌,站著就把錢賺了……
你心里會是什么感受?
老板對你又會是什么感受?
收藏時間
python自動化測驗專屬視頻、Python自動化詳細資料、全套面試題等知識內容,大家有需要可以【動動手指點擊此處就可免費領取了】,希望能夠在自學的道路上幫到你,
- ??如果這篇文章對你有用,記得點個贊????加個關注,你的每一個點贊我都認真的當成了喜歡~
- ??我們下期見!??????
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/335095.html
標籤:其他
