1. 程式人生 > >for迴圈+數字型別補充

for迴圈+數字型別補充

一、for迴圈

1、迴圈取值
 1.1列表型別:
   定義l=['a','b','c'],要提取列表中的值
   如果採用while迴圈的話:
    print(len(l))
    i=0
    while i<len(l):
       print(l[i])
             i+=1

   採用for迴圈的話會方便很多:
    l=['a','b','c']
    for item in l:
       print(item)

  這行程式碼讓python從列表l中取出元素,並講其存到變數item中,元素會被打印出來

  1.2字典型別:
   dic={'x':111,'y':222,'z':333}
   for item in dic:
      print(item)
   因此字典型別中預設列印的是key,所以以上結果為:x y z

    如果也想要取值的話:
   dic={'x':111,'y':222,'z':333}
   for k in dic: #k='x'
      print(k,dic[k])
      列印結果就是: x 111  y 222   z 333

  1.3 while迴圈 VS for迴圈:
   1.while迴圈:是條件迴圈,迴圈的次數取決於條件何時為False
      for迴圈:是迭代迴圈,迴圈的次數取決於資料中包含的元素的個數
    2.for迴圈專門用來取值,在迴圈取值方面要比while要強大。因此,遇到迴圈取值就選擇for迴圈
    3.for迴圈可以取值列表、字典、和範圍range

 1.4
   for+break 和while+break是一樣的,break直接終止本層迴圈
   for+continue 和while+continue也一樣,cont終止的是本次迴圈,不影響下次的迴圈
   for+else 和while+else也一樣,else的子代塊只有在while迴圈沒有被break打斷的情況下才會執行

 1.5 for迴圈巢狀
   for i in range(3)
      for j in range(2)
         print(i,j)
   每當外層迴圈迴圈一次,內層迴圈要迴圈一套
  

 二、資料型別補充
  數字型別:
    (一).整型
   1.型別轉換:
      浮點型、純數字的字串可以轉換為整型,如下:
     print(int(3.33))
     print(int('33333'))

   2.整型存一個值
   3.不可變型別

   (二)浮點型
   1.型別轉換:
      整型、只有小數的字串可以轉換成浮點型,如下:
     print(float(333))
     print(float('33.333'))

 (三)補充:
   十進位制轉二進位制:print(bin(13))
   十進位制轉八進位制:print(oct(13))
   十進位制轉十六進位制:print(hex(13))

 字串型別:

  1.型別轉換: 可以把任意型別專場字串型別
   2.雖然只能存一個值,但是這個值可以有不止一個的字元,所以有序
   3.不可變型別
   4.按索引取值(正向取+反向取) :只能取
     字串和列表一樣,可以採用索引取值,但是列表取得是元素,字串取得是字元,如下:
     正向取和列表一樣,從0開始,不同的是字串可以反向取,從後向前,從-1開始:
      msg='hello world'
      print(msg[0])  
      print(msg[-1])

   5.切片(顧頭不顧尾,步長)--> 索引的擴充套件運用
      msg='hello world'
      print(msg[0:5:2])

    打印出來是:hlo 0代表的是從0起始,5代表到第五個,但是切片顧頭不顧尾,所以不包括第五個。2是步長,意思是說隔兩個數一次

     print(msg[0:])  

     打印出來是:hello world 如果不寫終止,預設到最後,不寫步長預設步長是1

  6.長度len:統計的是字元的個數
      msg='h你d'
      print(len(msg)) 打印出來是:3
   7.成員運算in和not in:判斷一個子字串是否存在與一個大字串中
      msg='hello world'
      print('ho' in msg)  打印出來是False
      print('ho' not in msg)  打印出來是True   推薦使用這種
   8.移除空白strip:移除字串左右兩邊的某些字元
      msg='      hello      '

     print(msg.strip(' '))
     print(msg.strip())
     因此去掉空格括號內可以打一個空格,也可以什麼都不打,系統預設去掉空格,如果想要去掉*,括號就打*

   9.切分split: 把有規律的字串切成列表從而方便取值
     info='egon:18:180:150'
     res=info.split(':',1)
     print(res)   打印出來是['egon', '18:180:150']
     print(res[1]) 打印出來是:18:180:150
     上面的程式碼中:的意思是說,從 :那裡切分。1的意思是說,從左往右,遇到:不管後面還有沒有,切分一次。

     res=info.split(':')  打印出來是['egon', '18', '180', '150']  括號內不寫數字的話,就是說每一個:都要切分。

 補充(四星):
  1、strip,lstrip,rstrip
     msg='*****hello****'
     print(msg.strip('*'))
     print(msg.lstrip('*'))
     print(msg.rstrip('*'))


  2、lower,upper
     msg='AaBbCc123123123'
     print(msg.lower())
     print(msg.upper())

  3、startswith,endswith
     msg='alex is dsb'
     print(msg.startswith('alex'))
     print(msg.endswith('sb'))

  4、format的三種玩法  

    msg='my name is %s my age is %s' %('egon',18)  print(msg)

     msg='my name is {name} my age is {age}'.format(age=18,name='egon')  print(msg)

     format瞭解知識點:  msg='my name is {} my age is {}'.format(18,'egon')  msg='my name is {0}{0} my age is {1}{1}{1}'.format(18,'egon')  print(msg)

  5、split,rsplit
     cmd='get|a.txt|33333'
     print(cmd.split('|',1))
     print(cmd.rsplit('|',1))

  6、replace
     msg='kevin is sb kevin kevin'
     print(msg.replace('kevin','sb',2))

 

  7、isdigit   #當字串內為純數字時結果為True
     res='11111'
     print(res.isdigit())
     int(res)

 

  瞭解(**)
  1、find,rfind,index,rindex,count
     print('xxxkevin is sb kevin'.find('kevin'))    #尋找,沒有顯示-1
     print('xxxkevin is sb kevin'.index('kevin'))   #尋找,沒有的話會報錯
     print('xxxkevin is sb kevin'.rfind('kevin'))   #從右邊尋找
     print('xxxkevin is sb kevin'.rindex('kevin'))   #從右邊尋找

  2、center,ljust,rjust,zfill
     print('egon'.center(50,'*'))   #egon居中顯示,*兩端補充
     print('egon'.ljust(50,'*'))   #egon左邊顯示,*右邊補充
     print('egon'.rjust(50,'*'))   #egon右邊顯示,*左邊補充
     print('egon'.zfill(50))    #egon右邊顯示,預設0左邊補充

  3、captalize,swapcase,title
     print('my name is kevin'.capitalize())  #整句話第一個字母大寫
     print('AaBbCc'.swapcase())    #大寫變小寫,小寫變大寫
     print('my name is kevin'.title())    #每個單詞首字母大寫

   4、is其他
     name='egon123'
     print(name.isalnum())   #字串由字母或數字組成
     print(name.isalpha())   #字串只由字母組成

    print(name.islower())  #判斷是否是小寫
     print(name.isupper())  #判斷是否是大寫

     name='    '
     print(name.isspace())  #判斷是否有空格
     msg='I Am Egon'
     print(msg.istitle())    #判斷是否是首字母大寫