1. 程式人生 > 其它 >python控制流程及資料型別內建方法

python控制流程及資料型別內建方法

今日內容概要

  • 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方法切割完字串之後是一個列表"""
以上就是今天所學的內容,還有很多待記憶