1. 程式人生 > >菜鳥學python第五天

菜鳥學python第五天

菜鳥學Python第五天

流程控制

for迴圈

while迴圈 VS for迴圈:

while迴圈:稱之為條件迴圈,迴圈的次數取決於條件何時為false

for迴圈:稱之為迭代器迴圈,迴圈的次數取決於資料包含的成員個數

  1.  

    for迴圈專門用來取值,在迴圈取值方面比while迴圈強大,以後

    遇到迴圈取值的場景,就應該用for迴圈

for迴圈對字典進行取值,取出的是字典的key。

  • for + break

for i in range(1,10):
    if i == 3:
    break
    
1
2

 

  • for + continue

for i in range(1,5):
    if i == 3:
    continue1
2
4

 

  • for + else

    注意:else只有在for迴圈執行完畢且不被break打斷的情況下才會被執行到

  • for迴圈的巢狀

# 九九乘法表
for i in range(1, 10):  # 迴圈輸出9行
    for j in range(1, i+1):  # 迴圈輸出當前行的列數(與第一行i有關,i==1時,j只能取到1...)
        print('%s * %s = %s  ' % (i, j, i*j),  end=''
) # 列印,end當前行不換行 print('') # 列印完一行後換行

 

 


資料型別詳解

1. 整型:int

  • 作用:用來記錄年齡、等級、各種號碼狀態
  • 定義:
age = 10

 

型別轉換:int 可以將浮點型和純數字的字串轉換為整型

進位制轉換:(十進位制轉其他進位制)

1.bin():十進位制轉二進位制

2.oct():十進位制轉八進位制

3.hex():十進位制轉十六進位制

>>> i = 28
>>> print(bin(i))
>>> print(oct(i)) >>> print(hex(i)) ​ 0b11100 0o34 0x1c

 

  • 常用操作+內建方法

  • 不可變
  • 存單個值

     

2.浮點型:float

  • 作用:用來記錄身高,體重、工資狀態
  • 定義:
height = 1.83

 

型別轉換:float 可以將整型和僅包含數字的字串轉換成浮點型

  • 使用:略

3.字串:str

  • 作用:用來記錄描述性質狀態,比如名字、性別等。
  • 定義:在單引號('')、雙引號(" ")、三引號(''' ''', """ """)內包含一系列字元。
    • 三種不同引號的區別:

        1. 單引號和雙引號基本無區別,都是用來存放單個字串,但要注意的是要保證前後的一致性

        2. 三引號多用來存放多行字串

        3. 字串的巢狀時,要保證內外引號的差異性,否則就會報錯

x = 'abc' # 等同於x = "abc"
​
y = """
abc
123
hahaha
"""
​
msg = 'my name is "Jason"'

 

型別轉換:可以把任意型別轉成字串型別。

  • 使用:
    1. 字串的加法運算(僅限於字元串同型別相加)

    2. 字串的乘法(相乘的物件必須是int型別)

    3. 字串之間的大小比較

  • 常用操作及內建方法
    • 優先掌握

      1. 按索引取值(正向取+反向取):只能取

        >>> name = 'abcdef'
        >>> print(name[1])
        b
        >>> print(name[-1])
        f
        >>> 

         

      2. 切片(顧頭不顧尾:步長)

        name = 'Jason'
        print(name[:])  # 預設按照正向步長取所有值
        print(name[1:4])  # 正向取索引1-3元素
        print(name[-5:-1:1])  # 正向步長從倒數第五個取到倒數第二個
        print(name[-1:-5:-1])  # 反向步長從倒數第一個取到倒數第四個
        print(name[::-1])  # 預設反向步長取整個字串(字串的倒置)
        ​
        Jason
        aso
        Jaso
        nosa
        nosaJ

         

      3. 長度 len() : 統計字元的個數

        >>> name = 'abcdef'
        >>> len(name)
        6

         

      4. 成員運算 in / not in

        判斷字串中是否包含某元素。

      5. 移除空白 strip:移除字串左右兩邊的特定字元

        strip("")—>括號內可以是要去除的範圍

        # 情鏡一
        name = '   Jason   '
        print(name.strip())  # 括號內不填預設去除空格
        Jason
        ​
        # 情境二
        name = '*-=+h/ello*(_+__'
        print(name.strip('*-=+/_()'))  # 去除字串兩端所有括號內包含的字元,中間字元無法去除
        h/ello
         

         

      6. 切分 split : 把有規律的字串切分成列表從而方便取值

        msg = 'Jason;23;183;78;single'
        print(msg.split(';'))
        ​
        ['Jason', '23', '183', '78', 'single']

         

      7. 拼接 join : Python join() 方法用於將序列中的元素以指定的字元連線生成一個新的字串。

        msg = ['Jason', '23', '183', '78', 'single']
        print(':'.join(msg))
        ​
        'Jason:23:183:78:single'

         

        注:join本質上是將列表中的元素按照其原來的資料型別分別取出後進行拼接,由於字串的拼接只支援字串相互間的拼接,所以join只能對只含有字串型別的序列進行拼接。

    • 需要掌握的操作

      1. strip()、rstrip()、lstrip():去除字串兩邊字元、右邊字元、左邊字元

      2. upper()、lower():將字串轉化為全部大寫、將字串轉化為全部小寫

      3. startswith()、endswith():判斷字串是否以某字元開頭、是否以某字元結尾結尾

      4. 格式化:format的三種玩法

        1. 用法類似於%s,賦值需要嚴格按照前後對應以及引數數量關係關係

          msg = 'my name is {} my age is {}'. format('Jason', 23)
          print(msg)
          ​
          my name is Jason my age is 23
        2. 用法較第一種有所改進,按照索引決定對應關係。

          msg = 'my name is {0} my age is {1},{1},{1}'. format('Jason', 23)
          print(msg)
          ​
          my name is Jason my age is 23,23,23
        3. 第三種用法更加清晰明瞭,在{}填充描述性的變數名,並將變數名與變數值相對映。(推薦使用)

          msg = 'my name is {name} my age is {age}'. format(name='Jason', age=23)
          print(msg)
          ​
          my name is Jason my age is 23

           

      5. split、rsplit:切分(預設從左開始切分)、從右開始切分

        # str.split('切分符', 切分次數)
        cmd='get|a.txt|33333'
        print(cmd.split('|',1))
        print(cmd.rsplit('|',1))
        ​
        ['get', 'a.txt|33333']
        ['get|a.txt', '33333']
         

         

      6. replace:替換

        # str.replace('old','new',count)
        msg = 'Jason is so humor!'
        print(msg.replace('humor', 'smart'))
        ​
        Jason is so smart!
         

         

      7. isdigit :判斷字串是否由純數字組成

        # str.isdigit()
        age = '23'
        print(age.isdigit())
        ​
        True

         

    • 瞭解掌握

      內嵌方法 用途
      find()、rfind() 查詢從左、從右元素位置,返回第一個找到的索引(找不到返回-1)
      index()、rindex() 查詢從左、從右元素位置,返回第一個找到的索引(找不到報錯)
      count() 查詢元素在str中出現的次數,可指定範圍
      center() 將字串居中顯示,並指定填充內容和填充長度
      ljust()、rjust() 將字串向左、向右對齊,並指定填充內容和填充長度
      zfill() 將字串填充至指定長度,原字串向右對齊,往左邊以‘0’填充
      captalize() 將字串首字母大寫
      swapcase() 翻轉 str 中的大小寫
      title() 將字串中每個單詞首字母大寫
      isalnum() 判斷str中是否由字母 或 數字組成
      isalpha() 判斷字串是否由字母組成
      islower()、isupper() 判斷str是否為純小寫、純大寫
      isspace() 判斷str是否只包含空格
      istitle() 判斷str中每個單詞的首字母是否大寫
  • 總結:

      1. 存一個值

      2. 有序

      3. 不可變

        可變:值變,id不變。可變==不可hash

        不可變:值變,id就變。不可變==可hash