python控制流程及資料型別內建方法
阿新 • • 發佈:2022-03-08
今日內容概要
-
while+else
-
死迴圈與while的巢狀
-
for迴圈的基本使用
-
range關鍵字
-
for迴圈補充(break,continue,else)
-
for迴圈的巢狀
-
基本資料型別之整型、浮點型、字串的內建方法
今日內容詳細
while+else
# while與else連用
當while沒有被關鍵字break主動結束的情況下
正常結束迴圈體程式碼之後會執行else的子程式碼
eg:
while 條件:
迴圈體程式碼
else:
迴圈體程式碼正常執行結束,則會執行該子程式碼塊
具體資料例題:
count = 1
while count < 10:
if count == 4:
break
print(count)
count +=1
else:
print('while迴圈正常執行結束後'
死迴圈與while的巢狀
死迴圈是指永遠無法結束的迴圈並且一直佔用CPU,讓CPU一直工作
死迴圈的結果是有些時候會極度影響電腦的效能,甚至還造成硬體的損壞
常見的死迴圈:
count = 10
while True:
count *=1
while巢狀
在多個while巢狀中,有多少個while就有多少個迴圈體,有時候我們開啟每個迴圈體後都需要去關閉迴圈體,在關閉迴圈體的方法有兩種:方法一:在每個迴圈體上用好break,有多少個while迴圈體就有break,方法二:一個迴圈體之前用一個全域性地位符,後在while迴圈體中再安插一個全域性定位符,在安插的那個定位符需要將條件翻轉即可結束整個迴圈體,例如:
flag = True
while flag:
username = input('username>>>:')
password = input('password>>>:')
if username == 'tony' and password == '123':
print('登入成功')
while flag:
boy = input('請輸入您的指令>>>:')
if boy == 'exit':
print('下次再來')
flag = False
print('正在執行您的指令:%s' %boy)
else:
print('密碼錯誤')
for迴圈
for迴圈可以做到的事情while迴圈都可以做到
但是for迴圈語法更加簡單,使用頻率更高
一般情況下涉及到迴圈取值的時候,都會考慮使用for迴圈而不是while迴圈
語法結構
for 變數名 in for迴圈物件:可以是字串,列表,字典,元組和集合
for迴圈的迴圈體程式碼
每次執行都會將迴圈物件中的一個元素賦值給變數名
需要注意的是:針對for迴圈語法結構中的變數名,也應該做到見名知 意
如果真的沒有合適的名字可以使用常用的變數名i,k,v,nun,item等
name_list = ['jason','kevin','tony','jerry','oscar'],在該列表中分別取值
方法一:使用while迴圈依次打印出列表中所有的取值
count = 0
while count < 5:
print(name_list[count])
count += 1
方法二:使用for迴圈依次列印列表中所有的取值
for name in name_list:
print(name)
迴圈字典(特殊):迴圈字典只能獲取字典裡的K值,V值無法直接獲取
eg:userinfo_dict = {'username':'jason','age':18,'gender':'man'}
for i in userinfo_dict:
print(i)
迴圈元組
for i in (11,22,33,44,55):
print(i)
迴圈集合:字典與集合內部的元素都是無序的
for i in {11,22,33,44,55,66}:
print(i)
range關鍵字
range方法在python2和python3中有所區分
在python2中range是直接產生一個列表 元素很多的情況下會產生比較佔用空間的情況
在python2中有一個xrange 其實就是python3裡面的range
在python3中range相當於哆啦A夢的口袋,不佔空間,但是可以取出很多資料
在python3中只有一個range了
例如:
迴圈列印0-100
利用while迴圈
count = 0
while count < 101:
print(count)
count += 1
利用for迴圈
for i in range(101): # 表示的是從0開始到100結束的資料集,顧頭不顧尾
print(i)
range 其實是一個迭代器,用於產生一個數據集合,但是節省空間
用法1 括號內只寫一個數字,預設從零開始 顧頭不顧尾
for i in range(10): # 表示的是從0-9
print(i)
用法2 括號內寫兩個數字 自定義起始位置 顧頭不顧尾
for i in range(1,10): # 表示的是從1-9
print(i)
用法3 括號內寫三個數字 第三個數字表示的是兩個相鄰之間的差值,等差差值,預設情況是1
for i in range(1,10,2): # 表示的是從1開始取,差值是2的取,在1-10內取值
print(i)
爬蟲的定義:
通過編寫程式碼去網路上爬取我們需要的資料
可以去網上找一個具有多頁資料的網址 研究URL是否有規律
有一些網址分頁使用的URL
有一個使用的是內部js指令碼
用爬蟲的目的是:通過程式碼請求頁面獲取頁面資料
然後根據業務需求篩選出特定的內容
for迴圈補充
for+break
break結束本層for迴圈
for+continue
continue結束本次for迴圈 直接開始下一次
for+else迴圈正常結束之後執行else子程式碼
與while一致
for迴圈的巢狀
如何檢視資料的內建方法
可以藉助與程式設計軟體的自動提示 採用句點符快速檢視
資料型別的內建方法
1.型別轉換
str可以轉換所有基本資料型別
print(str(11),type(str(11)))
print(str(11.11),type(str(11)))
print(str([1,2,3,4]),type(str([1,2,3,4]))) print(str({'name':'jason'}),type(str({'name':'jason'})))
print(str((1, 2, 3, 4)), type(str((1, 2, 3, 4)))) print(str({1, 2, 3, 4}), type(str({1, 2, 3, 4})))
print(str(True), type(str(True)))
2.s1 = 'hello world'
2.1:索引取值
print(s1[0])
2.2:切片操作
print(s1[2:4]) # 顧頭不顧尾
2.3:步長
print(s1[2:9:1]) # 第三個引數是步長 預設是依次獲取
print(s1[2:9:2]) # 間隔一個取一個
索引取切片擴充套件
print(s1[-1]) # 獲取最後一個字元
print(s1[-1:-5:-1]) # dlro 第三個引數還可以控制索引的方向
控制索引的方向
print(s1[-5:-1]) # wor1
2.4 統計字串字元的個數
print(len(s1)) # ll
2.5 成員運算
print('ll' in s1)
2.6 移除字串首位指定的字元(使用頻率較高)
name = 'jason'
print(len(name))
res = name.strip() # 預設移除字串首尾的空格
print(res,len(res))
name1 = '$$$$jas$on$$$$'
print(name1.strip('$'))
username = input('username>>>>:').strip()
if username == 'jason':
print('我想去幹飯了!!!')
2.7 按照指定的字元切割字串
data = 'jason|123|DBJ'
# print(data.split('|')) # ['jason', '123', 'DBJ']
# name, pwd, hobby = data.split('|') # 解壓賦值
print(data.split('|', maxsplit=1)) # ['jason', '123|DBJ']
print(data.rsplit('|', maxsplit=1)) # ['jason|123', 'DBJ']
"""split方法切割完字串之後是一個列表""";
以上就是今天所學的內容,還有很多待記憶