程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python爬蟲基礎知識

編輯:Python

python基礎知識簡單復習

pycharm的簡單配置

settings->editor->file and code temlates

#-*- codeing = utf-8 -*- 編碼#@Time : ${DATE} ${TIME} 時間#@Author : chengcheng 作責#@File : ${NAME}.py 文件名#@Software : ${PROJECT_NAME} 文件運行環境

修改設置後新建文件自動生成的注釋

#-*- codeing = utf-8 -*-#@Time : 2020/9/27 19:00#@Author : chengcheng#@File : day01test02.py#@Software : python_test01''''多行注釋'''

python基礎知識補充:

for循環可以對多種基本數據類型進行遍歷。

name = "123"lists = ["1", 2]for x in name: print(x, end="") for strings in lists: #也可以遍歷列表等使用索引的數據存儲結構 print(strings)

while循環可以和else子句一起使用

while True: print(1)else: print(2)

python支持可以使用索引的數據元素可以使用負數切片

#列表,元組,字符串

break 結束while,for循環,continue 結束本次循環,pass 占位符

r 與C#中的@功能一致

print(r"12\n23")

python字符串常用方法

方法描述string.capitalize()把字符串的第一個字符大寫string.center(width)返回一個原字符串居中,並使用空格填充至長度 width 的新字符串string.count(str, beg=0, end=len(string))返回 str 在 string 裡面出現的次數,如果 beg 或者 end 指定則返回指定范圍內 str 出現的次數[string.decode(encoding=‘UTF-8’, errors=‘strict’)]以 encoding 指定的編碼格式解碼 string,如果出錯默認報一個 ValueError 的 異 常 , 除非 errors 指 定 的 是 ‘ignore’ 或 者’replace’[string.encode(encoding=‘UTF-8’, errors=‘strict’)]以 encoding 指定的編碼格式編碼 string,如果出錯默認報一個ValueError 的異常,除非 errors 指定的是’ignore’或者’replace’string.endswith(obj, beg=0, end=len(string))檢查字符串是否以 obj 結束,如果beg 或者 end 指定則檢查指定的范圍內是否以 obj 結束,如果是,返回 True,否則返回 False.string.expandtabs(tabsize=8)把字符串 string 中的 tab 符號轉為空格,tab 符號默認的空格數是 8。string.find(str, beg=0, end=len(string))檢測 str 是否包含在 string 中,如果 beg 和 end 指定范圍,則檢查是否包含在指定范圍內,如果是返回開始的索引值,否則返回-1string.format()格式化字符串[string.index(str, beg=0, end=len(string))]跟find()方法一樣,只不過如果str不在 string中會報一個異常.string.isalnum()如果 string 至少有一個字符並且所有字符都是字母或數字則返回 True,否則返回 Falsestring.isalpha()如果 string 至少有一個字符並且所有字符都是字母則返回 True,否則返回 Falsestring.isdecimal()如果 string 只包含十進制數字則返回 True 否則返回 False.string.isdigit()如果 string 只包含數字則返回 True 否則返回 False.string.islower()如果 string 中包含至少一個區分大小寫的字符,並且所有這些(區分大小寫的)字符都是小寫,則返回 True,否則返回 Falsestring.isnumeric()如果 string 中只包含數字字符,則返回 True,否則返回 Falsestring.isspace()如果 string 中只包含空格,則返回 True,否則返回 False.string.istitle()如果 string 是標題化的(見 title())則返回 True,否則返回 Falsestring.isupper()如果 string 中包含至少一個區分大小寫的字符,並且所有這些(區分大小寫的)字符都是大寫,則返回 True,否則返回 False[string.join(seq)]以 string 作為分隔符,將 seq 中所有的元素(的字符串表示)合並為一個新的字符串string.ljust(width)返回一個原字符串左對齊,並使用空格填充至長度 width 的新字符串string.lower()轉換 string 中所有大寫字符為小寫.[string.lstrip()]截掉 string 左邊的空格或字符string.maketrans(intab, outtab])maketrans() 方法用於創建字符映射的轉換表,對於接受兩個參數的最簡單的調用方式,第一個參數是字符串,表示需要轉換的字符,第二個參數也是字符串表示轉換的目標。max(str)返回字符串 str 中最大的字母。min(str)返回字符串 str 中最小的字母。string.partition(str)有點像 find()和 split()的結合體,從 str 出現的第一個位置起,把 字 符 串 string 分 成 一 個 3 元 素 的 元 組 (string_pre_str,str,string_post_str),如果 string 中不包含str 則 string_pre_str == string.string.replace(str1, str2, num=string.count(str1))把 string 中的 str1 替換成 str2,如果 num 指定,則替換不超過 num 次.string.rfind(str, beg=0,end=len(string) )類似於 find()函數,不過是從右邊開始查找.string.rindex( str, beg=0,end=len(string))類似於 index(),不過是從右邊開始.string.rjust(width)返回一個原字符串右對齊,並使用空格填充至長度 width 的新字符串string.rpartition(str)類似於 partition()函數,不過是從右邊開始查找[string.rstrip()]刪除 string 字符串末尾的空格.[string.split(str="", num=string.count(str))]以 str 為分隔符切片 string,如果 num 有指定值,則僅分隔 num+ 個子字符串[string.splitlines(keepends])按照行(’\r’, ‘\r\n’, \n’)分隔,返回一個包含各行作為元素的列表,如果參數 keepends 為 False,不包含換行符,如果為 True,則保留換行符。string.startswith(obj, beg=0,end=len(string))檢查字符串是否是以 obj 開頭,是則返回 True,否則返回 False。如果beg 和 end 指定值,則在指定范圍內檢查.[string.strip(obj])在 string 上執行 lstrip()和 rstrip()string.swapcase()翻轉 string 中的大小寫string.title()返回"標題化"的 string,就是說所有單詞都是以大寫開始,其余字母均為小寫(見 istitle())string.translate(str, del="")根據 str 給出的表(包含 256 個字符)轉換 string 的字符,要過濾掉的字符放到 del 參數中string.upper()轉換 string 中的小寫字母為大寫string.zfill(width)返回長度為 width 的字符串,原字符串 string 右對齊,前面填充0

列表

lst = [1,2,3,4]lst.append(12) #末尾追加lst.append(["1", 5]) #直接整個添加lst.extend([2,3]) #擴展添加for i in lst: print(i)
lst = [1,2,3,4,5,6,7,8,7]lst.pop() #默認彈出最後一個元素lst.pop(1) #彈出指定位置的元素lsts = []lsts = lst.remove(8) #移除指定元素del lst[1] #刪除指定位置的元素for i in lst: print(i, end="")for x in lsts: print(x, end="")
lst = [1,1,1,1]lst[0] = 2 #修改指定位置的元素值lst[1] = 3for i in lst: print(i)
select_name = 5lst = [1,2,3,4,5]if select_name in lst: #隱含著將列表進行一次遍歷 print("OK")else: print("NO")
lst = [1,2,3,4,5]print(lst.index(3, 1, 3)) #從1到3,查詢3的位置print(lst.index(3, 1, 2)) #如果查詢不到,會報錯,[1,3)左閉右開
lst = [1,2,3,4]lst.reverse() #將列表元素進行反轉print(lst)lst.sort(reverse=True) #列表進行排序,reverse=True反序print(lst)

元組

#元組#元組具有不可改變性tup1 = () #創建空的元組tup2 = (50,) #對於元組而言,如果只有一個元素需要加上逗號以和括號表達式區別print(type(tup2)) #包含了元素之後類型會發生變化print(type(tup1)) #默認空元組則是元組類型tup3 = ("a", 1 ,2, "b", "a") #可以有重復元素print(tup3)
#增tup1 = (1,2,3)tup2 = ("a", "b", "c")tup = tup1 + tup2 #通過相連的方式將元組的元素進行連接,返回一個新的元組print(tup)

字典

#字典#鍵要求必須使用不能改變的數據類型,鍵要求是唯一,值可以是重復的info = {"name":"qaq", "ages":12} #字典的定義print(info["name"]) #通過鍵來訪問字典的值print(info["ages"])print(info["age"]) #直接訪問不存在的鍵,會拋出錯誤print(info.get("genter")) #使用get方法,如果沒有要查詢的鍵,就返回noneprint(info.get("genter"), "111") #再訪問一個不確定的鍵時,可以使用get方法
#增info = {"name":"qaq", "age":18}id = 233info["id"] = id #直接使用新的鍵,並且復制,完成字典的添加print(info)
#刪info = {"name":1, "age":2}del info["name"] #刪除一個鍵值對del info #刪除整個字典info.clear() #清空字典的所有內容,字典依舊存在
#改info = {"name":"qaq", "age":18}id = 233info["age"] = id #直接通過鍵來訪問,復賦值,修改print(info)
#查info = {"name":"qaq", "age":18}print(info.keys()) #返回全部的鍵值print(info.values()) #返回全部的值print(info.items()) #返回全部的鍵值對

小結

列表[]有序可變類型元組()有序不可變類型字典{ }無序key不可重復,value可重復集合{ }無序不可重復

文件

open

打開文件,有多種模式可供選擇w寫,r讀

read

讀取字符(可傳參)

radline

讀取一行數據

readlines

讀取全部數據

異常

try: f = open("123.txt") print(1) #如果之前有錯誤拋出,下面的語句不再執行except (IOError, NameError) as message: print(message) #except捕獲異常,可以使用括號內括可能出現的異常,Exception包含所有的異常 pass

python 的 異常捕獲語法

try: f = open("123.txt") #可能出現異常的語句except Exception as msg: print(msg) #出現異常後應該執行什麼語句else: print("ok") #如果沒有出現異常,執行什麼語句finally: f.close() #不論有沒有出現錯誤,都會執行的語句

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved