Python中的循環(huán)
先介紹for循環(huán)
格式:
for 臨時變量in可迭代對象
循環(huán)體
name ='neusoft'
for x in name:
print(x)
if x =='s':
print('哈哈')
循環(huán)次數(shù)?
這個是什莫么?x是臨時變量不用提前聲明 Python自動為你創(chuàng)建
range(起始位置,終止位置,步長)可以寫循環(huán)次數(shù)
起始位置省略默認(rèn)為0,步長省略為1,范圍是左閉右開
給女朋友道歉100次 (1,101,2)
#for i in range(100):
# print('對不起老婆我錯了,這是我',i+1,'次向你道歉')
1.1常用數(shù)據(jù)類型
數(shù)字、列表、字符串、字典、元組、集合
1.1.1列表
類似與c中的數(shù)組,區(qū)別:list可以存儲不同類型的數(shù)據(jù)
創(chuàng)建一個列表
herolist=['魯班七號',"安琪拉",'李白','后羿',100,10.1]
#print(herolist)
總結(jié):列表使用方括號[]進(jìn)行創(chuàng)建
為什么要使用列表? 列表可以將我們需要的很多元素封裝到一個容器中
列表的相關(guān)操作:
1.訪問列表中的元素 列表名[索引] herolist[1].print
#print("英雄為:",herolist[1],)
2添加元素.append 是在列表的末尾進(jìn)行添加元素
herolist.append('魯班大師')
print('添加后的列表',herolist)
3.修改
herolist[4]="貂蟬"
print('添加后的列表',herolist)
4、刪除
#del herolist[5]
#print('刪除后的列表',herolist)
生成一個[0,1,2....20]的列表
可以使用循環(huán)來創(chuàng)建
創(chuàng)建一個空列表
list1 = []
使用循環(huán)不停的append
#for i in range(21):
# list1.append(i)
# print(list1)
#遍歷herolist
#for hero in herolist:
# # # print(hero)
# len()可以檢測對象的元素個數(shù)
#for i in range(len(herolist)):
# print(herolist[i])
# if herolist[i] == '后羿':
# print('恭喜你選中了隱藏英雄')
# else:
# print('不是隱藏英雄')
Python制作進(jìn)度條
安裝 tqdm庫
pip install 庫的名稱
導(dǎo)入 tqdm
#from tqdm import tqdm
#import time
#mylist = []
#for i in range(10):
# mylist.append(i)
遍歷mylist
#for x in tqdm(mylist):
# time.sleep(1)
字符串
表示 '' ""
要注意的是
#name = "k"e"bi"
#name = 'k"e"bi'
#print(name)
# 訪問
#print(name[2])
# 修改
#name[1] = "x"
#print(name)
#name = 'kebi'
#print(name)
常用操作
#price = '$9.9'
# 字符串的替換
#price = price.replace("¥",'')
#print(price)
# 價格漲價 10倍(price) *10
#new_price = float(price) *10
#print(new_price)
#while True:
# seg = input('')
# seg = seg.replace('嗎?','!')
# print(seg)
# strip 去空格操作
#name = 'neuedu'
#print(len(name))
#name = name.strip()
#print(len(name))
join # 將列表變成字符串
li = ['你','好','帥']
disk_path = ['c:','uers']
path = '\\'.join(disk_path)
print(path)
li = ''.join(li)
print(li)
元組
#tuple()
#()
#int()
#str()
創(chuàng)建
元組和列表很相似,只不過不能修改(字符串、元組)
# a = (1,'1',[''] )
# print(a)
# #訪問
# print(a[2])
元組的用處:
1.寫保護(hù)、安全Python內(nèi)置函數(shù)返回的類型都是元組
2.相對于列表來講,元組更省空間、效率更高
掌握
1.擁有一個元素的元組
# b = (100,) #(1+1)*2優(yōu)先運(yùn)算
# print(type(b))
# 我們經(jīng)常使用的組合方式:
# list2 = [('a',22),('b',33),('c',99)]
字典
創(chuàng)建字典 key -value
info = {'name':'崔天池','age':18,'gender':'female'}
# print(type(info))
# 訪問字典 通過建立訪問值
# print(info['name'])
# # 訪問不存在的鍵
# # print(info['add'])
# 當(dāng)不存在這鍵的時候,可以返回默認(rèn)的值
# 有這個鍵就正常返回
# print(info.get('addr','撫順市'))
# #修改
# info['age'] = 3
# print(info)
# 增加 當(dāng)字典中不存在這個鍵,就會添加
# info['addr'] = '鞍山市'
# print(info)
#刪除
# del info['age']
# print(info)
遍歷
for k,v in info.items():
print(k,'---->',v)
獲取所有鍵
print(list(info.keys()))
獲取所有值
print(list(info.values()))
1.獲取到網(wǎng)頁的源代碼,requests
安裝requests
#pip install requests
import requests
獲取指定域名的源代碼
response = requests.get('http://www.baidu.com')
# 相應(yīng)狀態(tài)碼 200 ok not found
print(response.status_code)
響應(yīng)的編碼方式
設(shè)置編碼方式
response.encoding= 'utf-8'
print(response.status_code)
print(response.encoding)
獲取 string 類型相應(yīng)
html_data = response.text
print(html_data)
將爬取的文件寫成 本地html
文件路徑,讀寫模式,編碼方式
with open('index.html','w',encoding='utf-8')as f:
f.write(html_data)
圖片爬取
圖片地址
url='http://big5.wallcoo.com/nature/Hokkaido_summer_field/images/Hokkaido_summer_field_picture_13652941_3540148.jpg'
response2 = requests.get(url)
獲取byte類型的相應(yīng)
img_data = response2.content
# 文件路徑,讀寫模式write binary,編碼方式
with open('kobe.png','wb')as f:
if response2.status_code == 200:
f.write(img_data)
2.然后提取我們要的信息 xpath