日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python123动物重量排序_Python爬虫图片学习(一)

發布時間:2023/12/4 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python123动物重量排序_Python爬虫图片学习(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python爬蟲學習

一、Python安裝與調用

python官網安裝地址:https://www.python.org/

python幫助手冊:在本機的路徑C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Doc

創建一個1.py文件,右鍵打開.py文件,用IDLE方式打開。保存后直接run F5運行或者保存后F5運行:輸出效果

hello在十個星號中間

定義一個用戶變量登陸

用ipuut:定義變量值

二、一些定義:

特殊語句:

and 并且

or 或者

not 條件取反

= 賦值

== 比較

> 、< 、!=、 >= 、<=

變量名稱的定義:

不能以數字開頭(如1name,下劃線可以開頭__)、變量不能帶有特殊符號(下劃線_可以)、變量名稱區分大小寫、(if、else、elif這些特殊關鍵字不能作為變量名稱使用)

關鍵字和內建函數不能作為變量:

import keyword 輸出不能作為變量名的關鍵字

內建函數不能作為變量名使用,變量名一般是黑色:help(type)可以查看內建函數或者在python幫助手冊里輸入built-in function查看所有內建函數

腳標取值的常用形式

name = "my name is wahaha"

print(name[開始腳標:結束腳標])

print(name[正數]):從左往右索引值分別為0,1,2,3,4,5...16,超出報錯

print(name[負數]):從右往左索引值分別為-1,-2,-3,-4...-17,超出報錯

print(name[0]):輸出m,第一個字符串索引值為0

print(name[-1]):輸出a,最后一個字符串

print(name[1:4]):輸出y n,不輸出結束腳標4的索引值

print(name[:11]):輸出my name is ,輸出往前所有數據,不輸出結束腳標11的值

print(name[11:]):輸出wahaha,輸出往后所有數據,包括開始腳標

三、Python數據結構(列表、字典、元祖、集合):

列表的應用

1.列表中的每一個元素都是可變的;

2.列表中的元素是有序的,也就是說每一個元素都有一 個位置;

3.列表可以容納Python中的任何對象

列表 ( list ) c = [ val1,val2,val3] 列表可以容納ython的任何對象

all_in_list=[

1,整型

1.0,浮點型

"a word",字符串

print(1),函數

True,布爾值

[1,2],列表套列表

(1,2),元祖

{"key":"val"}]字典

列表的增刪改查:insert():插入 remove():刪除 alist[]=""、del:修改

查看

alist = [1,2,3,4]

print(alist[1:3])#輸出[2,3]按索引值查看單個或多個數據

增加

insert(索引值,插入數據)應用: 按列表索引值插入,索引值存在則在索引值前增加數據,索引值不存在則往后添加一個新數據(反向索引則往前添加)

alist = [1,2,3,4]#正向索引值1 >>0 反向索引值1 >>-4

alist.insert(2,8)

print(alist)#輸出[1,2,8,3,4,]

刪除

remove(刪除的數據): 直接remove(數據)需要刪除的數據

alist = [1,2,'3',4]

alist.remove('3')

print(alist)#輸出[1,2,4] 想刪啥刪啥

del alist[]:按索引值進行刪除

alist = [1,2,3,4]

del alist[0:3]

print(alist)#輸出[4] 相當于刪除選中索引值的數據,索引值不存在就不會刪除

修改

alist[索引值]="修改的數據"

alist = [1,2,3,4]#正向索引值1 >>0 反向索引值1 >>-4

alist[1]=8

print(alist)#輸出[1,8,3,4,] 按索引值修改,相當于修改2為8

alist[0:3]=8

print(alist)#輸出[8,4]按索引值區間修改,相當于把修改的數據,放入所索引值數據區間內,即便是修改的數據有很多條

列表的索引值取值實例圖片

列表的實際應用實例圖片

2. 字典的應用

1.字典中數據必須鍵值對的形式出現,且鍵只能為字符串、數字、浮點類型

2.邏輯上,鍵是不可重復,鍵重復以該變量索引值末尾的鍵值對為準輸出,而值可以重復

3.鍵是不可修改變換的,但是值可以修改變換(可以是任何對象)

字典的增刪改查

查看

指定鍵查看值

adict = {"a":"123","b":"456","c":"789"}

print(adict["a"])#輸出123 指定鍵取值

增加

update()方法: 往字典內添加多條數據

adict = {"a":"123","b":"456"}

adict.update({"c":"789","d":"999"})#不要忘了寫大括號

print(adict)#輸出{'a': '123', 'b': '456', 'c': '789', 'd': '999'}

刪除

del adict(需要刪除的鍵): 指定鍵刪除的鍵

adict = {"a":"123","b":"456","c":"789"}

del adict['a']#[]中括號里的鍵如果是字符串必須加引號,其他類型的加不加都行

print(adict)#輸出{'b': '456', 'c': '789'}

修改

通過指定鍵修改值的形式修改

adict = {"a":"123","b":"456","c":"789"}

adict["a"] = 456 #修改為數字型456,[]中括號里的鍵如果是字符串必須加引號,其他類型的加不加都行

print(adict)#輸出'a': 456, 'b': '456', 'c': '789'}

字典通過鍵取值實例圖片

字典不能通過值取鍵實例圖片

通過字典鍵值對的特殊性,解決賬號登陸時,列表中密碼不對應賬戶的問題實例圖片

元祖的應用

元祖可以理解成穩固版的列表,因為元祖是不可修改的,增刪改都不可以, 但是元祖可以按索引值查看數據,查看方式和列表相同

查看

atuple = ("opo","12",1,1.036,8,3)

print(atuple[0:3])#輸出('opo', '12', 1)

集合的應用

每一個集合的元素都是無序、不重復的任意對象。可以通過集合去判斷數據的從屬關系, 還可以通過集合把數據結構中重復的元素刪除,集合里邊不能放集合、字典、列表,但可以放元祖

增加

add()方法:去增加一個字符串、數字、浮點或元祖類型的數據

aset = {1,"a",2,2,"2",1.02,"2"}

aset.add(("qq","ww"))

print(aset)#輸出{1, 2, 1.02, ('qq', 'ww'), 'a', '2'},因為是無序的

刪除

把集合中重復的數據刪除

aset = {1,"a",2,2,"2",1.02,"2"}

print(aset)#輸出{1, 2, 1.02, 'a', '2'},里面重復的內容會去掉整合成一個新集合

discard(刪除的值)方法: 指定值刪除某條值數據

aset = {1,2,3,4,5}

aset.discard(5)

print(aset)#輸出{1, 2, 3, 4},指定5刪除掉

數據結構技巧

sorted()方法:會將列表中同類型的每個元素按長短、大小、字母順序排序,不改變列表內容

注意:當列表存在不同類型時用此方法會報錯(不適用于不同類型的列表)

alist = ["7","6","5","4","Ba","Bb","bA","aA","3","2","1"]

print(sorted(alist))#輸出['1', '2', '3', '4', '5', '6', '7', 'Ba', 'Bb', 'aA', 'bA']

zip() 方法:會將兩個以上的列表進行對應,就可以用此方法操作

注意:當兩個列表元素數量不等時,以元素數量少的列表為準相對應

alist = [7,6,5,4,3,2,1]

blist = ["Ba","Bb","bA","aA","3","2","1"]

a_list = sorted(alist)#對列表alistj進行順序排序

b_list = sorted(blist)#對列表blistj進行順序排序

print(a_list)#輸出[1, 2, 3, 4, 5, 6, 7]

print(b_list)#輸出['1', '2', '3', 'Ba', 'Bb', 'aA', 'bA']

for a,b in zip(a_list,b_list):#a >>a_list b >>b_list,相當于for循環每次循環會安排序取出一條數據進行輸出

print(a,"is",b)#這個子語句需要縮進,若不縮進會報錯

#輸出

1 is 1

2 is 2

3 is 3

4 is Ba

5 is Bb

6 is aA

7 is bA

sorted()與zip()方法實例圖片

enumerate()函數的運用

默認情況下循環列表獲取元素索引值:

a = ["a","b","c","d"]

for num,a in enumerate(a):#num的值對應索引值,默認為0,相當于enumerate(a)=[0>"a",1>"b",2>"c",3>"d"]相對應

print(a,"is",num)#所以fo循環中 num對應的是索引值0,a對應的是列表中元素

#輸出:

a is 0

b is 1

c is 2

d is 3

修改索引值情況下循環列表獲取元素索引值:

a = ["a","b","c","d"]

for num,a in enumerate(a,10):#num的值對應索引值,默認為0,相當于enumerate(a)=[10>"a",11>"b",12>"c",13>"d"]相對應

print(a,"is",num)#所以fo循環中 num對應的是索引值0,a對應的是列表中元素

#輸出

a is 10

b is 11

c is 12

d is 13

enumerate()函數獲取元素列表索引值用法實例圖片

6. **查看類型的屬性與幫助內容**

可以通過某些特殊內建函數去查看模塊或者函數方法的幫助信息

help():查看類型、模塊幫助信息,查看的信息全面

type():查看類型,丟進去一個模塊或方法

dir(): 查看類型的屬性和函數方法,

以random模塊為例,查看類型的屬性與幫助內容實例圖片

四、python推導式的運用

python之列表推導式的運用:

首先得知道randge()函數的運用:

range(a,b,c)

a:計數從a開始,默認為0,當range(5),相當于range(0,5)

b:計數到b結束,但不包括5,當range(0,5),輸出的是[0,1,2,3,4]

c:步長值,默認為1,相當每隔一個取一個。當range[0,8,2],輸出的是[0,2,4,6]

append() 方法用于在列表末尾添加新的對象。

range()函數的運用,python之列表推導式運用

python之列表推導式普通寫法:

添加了步長值的用法

a = []

for i in range(1,8,2):#print(a)在for循環外的用法:每隔兩位取值進入for循環,相當于每次for循環從range()中按步長值取出數字,返回給a列表,當循環完成后,輸出的就是range(1,8)中取出來的所有值的a列表

a.append(i)#append()方法相當于給a列表添加新數據

print(a)#輸出的是[1, 3, 5, 7]

print(a)在for循環外的用法:

a = []

for i in range(1,8):#print(a)在for循環外的用法:相當于每次for循環從range()中值取出數字,返回給a列表,當循環完成后,輸出的就是range(1,8)中取出來的所有值的a列表

a.append(i)

print(a) #輸出的是[1, 2, 3, 4, 5, 6, 7],如果是range(8)輸出的是[0, 1, 2, 3, 4, 5, 6, 7]

print(a)在for循環內的用法:

a = []

for i in range(1,8):#print(a)在for循環內的用法,相當于每次for循環從range(1,8)中取出數字,依次將range(1,8)取出來的值放入a列表中,每次a列表的值會從原來的基礎上增加一個值,每一次循環輸出一次a列表

a.append(i)

print(a)

#輸出

[1]

[1, 2]

[1, 2, 3]

[1, 2, 3, 4]

[1, 2, 3, 4, 5]

[1, 2, 3, 4, 5, 6]

[1, 2, 3, 4, 5, 6, 7]

python之列表推導式解析式:

b = [i for i in range(1,8)] #for i rang(1,8)將[1,2,3,4,5,6,7]的值傳給了i,i再將值傳遞給for前面的i,注意:兩個i的變量必須相同,相當于定義了for前邊的i

print(b) #輸出的是[1, 2, 3, 4, 5, 6, 7]

python之列表推導式實例圖片:range()函數用法

enumerate()函數:循環列表時獲取元素的索引值(也可以自己指定索引值)

enumerate(list,b)

list: 列表

b: 默認從0開始取,但是可以指定索引值從第幾個去

python之字典推導式

字典推導式的運用

adict = {i:i+1 for i in range(1,6)} #for循環將得到的數據傳給i ,i再將得到的數據傳for前面的i:i+1

print(adict)#輸出{1: 2, 2: 3, 3: 4, 4: 5, 5: 6}

理解下面這個for循環就好理解上面字典推導式了:

adict = {}

for i in range(1,6):

adict.update({i:i+1})#{}大括號不要忘記,相當for循環將range(1,6)得到的數據放入adict字典中

print(adict)#輸出{1: 2, 2: 3, 3: 4, 4: 5, 5: 6}

python之字典推導式實例圖片

五、if 條件判斷語句:

if 條件:

子語句(子語句一定要有4個空格縮進)

if 條件 (多個條件可以在if后面加 and password ==“123”:) 子語句(子語句一定要有4個空格條件成立執行)

else: 子語句(條件不成立執行)

多分支條件語句

六、循環語句

while循環 、for循環

利用循環制作小游戲

猜一次:小游戲,看看能否猜中隨機值

用if循環去做這個小游戲

猜十次:小游戲,看看能否猜中隨機值

while循環:根據條件進行循環(條件滿足跑到死馬)

用while循環作弊,可以容錯十次(缺點:你得玩十次,猜對了還得往下猜)

break:猜中了立即跳出循環:

作弊手段智能化,猜對了就不用再假惺惺去猜了,直接跳循環

break的應用:終極關閉程序

終止實例代碼:

while True:

num=int(input('請輸入數字'))

if num<50:

print('數字小于50,繼續判斷他是不是小于0')

if num<0:

print('數字小于0')

break

elif num>50:

print('數字大于50,繼續判斷他是不是大于100')

if num>100:

print('數字大于100')

break

管你break在第幾層,只要運行break這個循環得停止

continue:結束此次循環,重新開始循環

continue被運行了,它下面代碼不再執行,重新開始循環,知道這個while循環條件不在滿足

for循環:根據變量賦值的次數進行循環

字符串、列表、元組、字典在for循環中依次取值實例圖片

range()函數在for循環中依次循環取值示例圖片

利用for循環將列表的值取出來并進行首尾去除特殊符號實例圖片

七、文件對象的讀取

f=open("E:\\aaaa\\a.txt","rb") open("讀取文件的絕對路徑","rb")r為讀 b為二進制,以二進制的方式

去讀取a.txt的內容,然后將內容賦值給變量f

print(f.read())打印f.read()讀取a.txt的內容

f.close關閉內存

f.seek(0,0)讀取光標移會初始位置

f.readline() 按行讀取

f.readlines() 以列表的方式讀取

在cmd默認登陸目錄(Windows登陸時的home目錄)中建立一個名叫test.txt的文件寫入內容

第一步:建立文件對象(打開冰箱門)

第二步:讀取文件(把大象拿出來)

read函數讀取文件

初次讀取

第二次讀取需要:f.seek(0,0) 將光標移回起始位置,再次f.read()就可以讀取內容了

f.readline() 按行讀取 f.readlines() 以列表的方式讀取

第三步:關閉文件(關上冰箱門)

f.close() 函數 因為前面open() 它是占用了內存的,不關閉內存不會釋放,影響運行

知識斷點:判斷a.txt里英文文章中單詞出現的次數

代碼:

目的:判斷a.txt里英文文章中單詞出現的次數

下面函數的方法:

strip():可以指定字符去除字符串的首尾字符

string.punctuation:鍵盤上的各種特殊字符

lower():將大寫變成小寫

split():指定分隔符分割字符串,默認以空為分隔符

count():統計某字符在在字符串里出現的次數

import string

path = "C:\\Users\\Administrator\\Desktop\\a.txt"

with open(path,"r",encoding="UTF-8") as text:

#利用 with as 語句以讀取的方式打開path文件,等于 text = open(path,"r",encoding="UTF-8")

#并設置編碼為utf-8,不然可能會報錯

words_list = [words.strip(string.punctuation).lower() for words in text.read().split()]

#通過列表推導式將text的內容讀取并分割成多個字符串,并通過for循環放入words中

#words將被傳送到for前面的words中進行首尾去除特殊符號并且全部換成小寫

#最后,處理干凈的多個單詞列表賦值給words_list

words_index = set(words_list) #將列表轉換成集合(因為下面得字典推導式需要用到大括號)

#為啥不轉換成字典?因為字典的鍵值對,你得先有值啊!

count_dict = {index:words_list.count(index) for index in words_index}

#轉換成字典有利于查看單詞與單詞出現的次數

#將集合里的單詞們賦值給index

#利用count()函數統計words_list列表里單詞出現的次數,即單詞:單詞次數

for word in sorted(count_dict,key=lambda x:count_dict[x],reverse=False):

##對count_dict進行排序

#key = lamdba x:count_list[x],這里意思是以字典的值作為排序標準

#reverse中True是降序,Flase是升序(默認)

print("{}--{}times".format(word,count_dict[word]))

#format()格式化函數

判斷a.txt里英文文章中單詞出現的次數實例圖片

八、文件對象寫入

實現拷貝文件,打開兩個文件。一個用讀的形式打開需要拷貝的文件,另一個用寫的方式打開需要生成的文件,把讀取文件交給寫入的文件,最后關閉兩個文件

往a.txt文件寫like,(a.txt存在會替換里面內容,不存在會創建一個a.txt)

f=open("E:\\aaaa\\1.txt","wb") 以寫的方式打開a.txt

f.writelines([b"li",b"ke"]) 寫入內容

f.close()關閉

將a.txt的內容復制到b.txt,b.txt不存在則創建一個b.txt,存在則替換內容

rf = open("E:\\aaaa\\a.txt","rb") 以讀取方式打開,賦值rf

wf = open("E:\\bbbb\\b.txt","wb")以寫入方式打開,賦值wf,創建-替換

data = rf.read()rf調用read()函讀取a.txt內容然后賦值data

wf.write(data)wf調用write()函數將data內容寫入到b.txt里(因為打開方式是寫入)

rf.close()關閉

wf.close()關閉

當限制讀取數據是可以利用循環一點點讀取

rf = open("E:\\aaaa\\a.txt","rb")以讀取方式打開,賦值rf

wf = open("E:\\bbbb\\b.txt","wb")以寫入方式打開,賦值wf,創建-替換

while True: 死循環

data = rf.read(110)每次讀取110字節數

if data == b"":當data讀取到空即讀取完,就break跳出死循環

break

wf.write(data)每次循環都往b.txt里拼接內容

rf.close()關閉

wf.close()關閉

第一步:打開文件(開冰箱)

在用戶家目錄中建立一個tsetone.txt的文件寫入三行內容

2. 第二步:寫入文件內容(放大象)

拷貝一個文件,將testone.txt文件的內容拷貝成testtow.txt(one的內容不能變化刪除,而是產生一個新的tow文件)

通過文件對象cmd.exe對命令工具做復制

保存文件(關冰箱門)

f.close() 函數 因為前面open() 它是占用了內存的,不關閉內存不會釋放,影響運行

九、函數和模塊的定義

取隨機值:

import random #調用模塊 從此文件調用模塊c:\users\administrator\appdata\local\programs\python\python37\lib\random.py

alist= ["tom","timi","niko"] #賦值

print(alist[random.randint(1,2)]) #根據索引值隨機打印出變量alist的內容,需要根據alist的數據來指定,不然會報錯

print(random.choice(alist)) #不用指定alist的數據就可以隨機取值

創建模塊

該模塊可以被調用 ( 用import調用)

在模塊中包含一個功能模塊,函數的作用是返回20個星號

1·定義的模塊名稱不能以數字開頭

2·不能和默認的模塊重名

注意:調用方法函數必須有一個變量去接受方法函數的返回值,然后輸出這個變量得到的就是返回的內容

調用創建的模塊

調用模塊和打印模塊必須在同一個目錄或者調用模塊在此文件中(c:\users\administrator\appdata\local\programs\python\python37\lib\random.py )

十、函數的形參實參與異常捕獲

函數的形參和實參

函數的形參:在定義函數的時候,給定函形參變量,然后傳參的時候傳上兩個變量去對應,那么形參變量就變為上傳的變量導入函數中。

如:

def division (a,b) # a和b是給定的變量形參

num = a / b

return num

numa = 20

numb = 5

endnum = division(numa,numb) # 上傳到函數里面取代 a,b

print(endnum)

函數的實參:就是在定義函數的時候給了一個指定的值,比如def division(1,2) 就是實參

函數的異常捕獲(找bug)

函數的異常捕獲:預判代碼某個位置可能會報錯,提前將這個報錯屏蔽,然后由開發者去進行提示

try (被捕獲的子語句)可能出現運行錯誤的語句: 利用這個關鍵字去捕獲異常

except (異常類型1,異常類型2,...)報錯信息: 關鍵字除非,意思是如果出現這個報錯將由它打印出異常的提示信息,更為友好直觀

小技巧:expcept:不捕獲異常類型信息也是可以的

當代碼運行出現異常,用try捕獲代碼,然后用except提示友好的異常信息或者直接pass退出

異常捕獲小技巧:

十一、面向對象編程

面向對象編程相對應的是面向過程編程(順序,按順序運行)

類 class

生物 >>動物 >>靈長類動物 >>人類 >> 男人 >>老人…(無限套娃,萬物皆可為類)

當定義一個類的時候,系統會開辟一個內存空間,里面存儲屬性和方法

類的命名規則:大小駝峰命名法 兩個單詞首字母大寫 兩個單詞首字符大寫

屬性:由變量組成

方法:由函數組成,實現功能,函數(self)括號內必須寫self

創建對象:就是使用一個類,將類實例化,同一個類可以創建多個對象,類相當于模板

魔術方法:雙下劃線(__init__初始化方法),滿足即調用

self 的運用,代表實例化對象本身

將更多需要設置修改的東西放入類中

python之%s、%d、%f的用法

%s字符串 %d數字 %f浮點數

十二、爬蟲獲取網頁圖片

python正則表達式

正則使用最多的是findall函數:

單個字符串匹配:

. 匹配單個任意字符

[] 寫在中括號里面的內容會被逐一單個匹配

\d 匹配單個數字

\w 匹配 [0-9a-zA*Z_]

\s 匹配空白字符 空格 tab鍵

多個字符串匹配:

直接匹配 字符串

|: 分隔符應用 匹配兩個不同的字符串 字符串|字符串

*: 匹配左鄰字符出現0次或者多次

+:左鄰字符出現一次或者多次

?:左鄰字符出現0次或者1次

{2.4}:定義左鄰字符出現次數 2-3此次都會匹配

^:是否以某字符串開頭

$:是否以某字符串結尾

():分組保存 \數字

正則表達式分組保存,參考:https://www.cnblogs.com/erichuo/p/7909180.html

正則表達式中,group()用來提出分組截獲的字符串,()用來分組

import re

a = "123abc456"

print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0) #123abc456,返回整體

print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(1) #123

print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(2) #abc

print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(3) #456

需要使用python中的urllib庫爬取網頁圖片

第一步:獲取網頁的html代碼

第二步:偽造一個user_agent頭,不能會被封ip

第三步:通過正則表達式過濾出圖片信息

第一步:獲取網頁的源代碼:

import urllib.request:通過request模擬瀏覽器發送請求

__init_:初始化方法,即實例化對象時就使用這個方法給對象配置基本功能

urllib.request.urlopen():指定一個url,默認以GET方式發送請求

read():讀取內容

add_hearder:偽造一個user-agent

第二步:偽造user-agent

第三步:利用正則過濾圖片信息并把圖片下載下來

總結

以上是生活随笔為你收集整理的python123动物重量排序_Python爬虫图片学习(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。