1、變量和數據類型

1. 變量

1.1 定義

變量是用來存儲數據的量,變量名由字母、數字、下劃線組成的,且不能以數字開頭。此外,在編程的過程當中,全部變量的命名都要作到見名知意。git

1.2 分類

  • 全局變量編程

    做用範圍在全局的變量,例如:一個類中定義的類變量,類中全部的方法均可以使用該變量。api

  • 局部變量app

    做用範圍在局部的變量,例如:一個類中的方法定義的方法變量,該變量只能在該方法中使用,而不能給類中的其餘方法使用。函數

1.3 變量命名

  • 下劃線命名法編碼

    單詞之間用下劃線鏈接的命名方式,例如:auto_test。在Python中,通常默認函數名的命名方式採用下劃線命名法。code

  • 駝峯命名法orm

    • 小駝峯命名法索引

      除首字母小寫外以後的每一個單詞的首字母大寫的命名方式,例如:autoTest。

    • 大駝峯命名法

      每一個單詞的首字母大寫的命名方式,例如:AutoTest。通常默認類名的命名方式採用大駝峯命名法。

  • 注意

    在變量命名時要避開使用關鍵字來做爲變量名。

2. 數據類型

2.1 數字

  • 整數

    int表示整數類型。

  • 浮點數

    float表示浮點數類型。

  • 注意

    int和float類型都是不可變的。

2.2 布爾類型

  • 格式

    bool,布爾類型的值只有兩個:True和False。

    print(bool(0))
    print(bool(3))
    print(bool(''))
    print(bool('it'))
    
    # 輸出結果
    False
    True
    False
    True
    
    # 注意:全部的數字除0布爾值爲False外,其餘布爾值均爲True;全部的字符串除空字符串''布爾值爲False外,其餘布爾值均爲True。

2.3 字符串

  • 格式

    str,由單引號',雙引號",三引號'''或"""所包含的內容爲字符串。字符串是不可變的。

  • 字符串操做

    • 字符串的加法運算和乘法運算

      string1 = 'Hello'
      string2 = 'World!'
      # 加法運算
      string3 = string1 + ' ' + string2
      # 乘法運算
      string4 = string3 * 3
      print(string3)
      print(string4)
      
      # 輸出結果
      Hello World!
      Hello World!Hello World!Hello World!
    • 字符串方法

      • 首字母大寫、標題、小寫、大寫
      '''
      .capitalize
      .title
      .lower
      .upper
      '''
      
      string1 = 'my Favorite programming Language is python.'
      print(string1.capitalize())
      print(string1.title())
      print(string1.lower())
      print(string1.upper())
      
      # 輸出結果
      My Favorite Programming Language Is Python.
      my favorite programming language is python.
      MY FAVORITE PROGRAMMING LANGUAGE IS PYTHON.
      • 判斷是否爲數字
      '''
      .isdecimal
      .isnumeric
      .isdigit
      '''
      
      string2 = ['1', '①', '一']
      for i in string2:
          print(i.isdecimal()) # 最經常使用
          print(i.isnumeric())
          print(i.isdigit())
          print('=='*5)
      
      # 輸出結果
      True
      True
      True
      ==========
      False
      True
      True
      ==========
      False
      True
      False
      ==========
      • 切片
      string3 = '0123456789'
      print(string3[:])
      print(string3[:2])
      print(string3[2:])
      print(string3[1:5])
      print(string3[:-1])
      print(string3[0:4:2])
      
      # 輸出結果
      0123456789
      01
      23456789
      1234
      012345678
      02
      
      # 注意:從前日後索引是從0開始的,從後往前索引是從-1開始的(即:最後一位元素的索引爲-1)。srting3[參數1:參數2:參數3],參數1是切片時索引的起始位置,參數2是結束位置(不包括參數2自己,即:參數1和參數2是可看做一個前閉後開的集合),參數3是步長(即:切片時每兩個參數之間的間隔)。
      • 去空格
      '''
      .strip
      .lstrip
      .rstrip
      '''
      
      string4 = ' it is delicious. '
      print(string4.strip())
      print(string4.lstrip())
      print(string4.rstrip())
      
      # 輸出結果
      it is delicious.
      it is delicious. 
       it is delicious.
      • 按指定字符切分字符串
      '''
      .split
      .partition
      .rpartition
      '''
      
      string5 = 'i=am=aaron'
      # split切分全部的指定字符,且切分以後該字符不存在,輸出結果爲列表類型。
      print(string5.split('='))
      # partition和rpartition切分遇到的第一個字符,且切分以後指定的字符還在(將字符串切分爲三個部分),輸出結果爲元組類型。
      print(string5.partition('='))
      print(string5.rpartition('='))
      
      # 輸出結果
      ['i', 'am', 'aaron']
      ('i', '=', 'am=aaron')
      ('i=am', '=', 'aaron')
      • 按指定字符串鏈接列表中的元素
      '''
      .join
      '''
      
      string6 = '-'
      list1 = ['2019', '10', '28']
      print(string6.join(list1))
      
      # 輸出結果
      2019-10-28
      • 計算指定字符在字符串中出現的次數
      '''
      .count
      '''
      
      string7 = 'Today*is*a*sunny*day.'
      print(string7.count('*'))
      
      # 輸出結果
      4
      • 判斷字符串的開始和結尾元素
      '''
      .startswith
      .endswith
      '''
      
      string8 = 'I am an number 9'
      print(string8.startswith('I'))
      print(string8.endswith('9'))
      
      # 輸出結果
      True
      True
      • 查找指定字符
      '''
      .index
      .rindex
      .find
      .rfind
      '''
      
      string9 = 'pronunceation'
      print(string9.index('n'))
      print(string9.rindex('n'))
      print(string9.find('x'))
      print(string9.find('o'))
      print(string9.rfind('o'))
      
      # 輸出結果
      3
      12
      -1
      2
      11
      
      # 注意:index和find都是查找對應的字符並返回其索引值(返回的是第一個查找到的元素的索引值),可是,若查找的字符不存在時,index會直接報錯,find會返回-1。
      • 替換字符串中的指定字符
      '''
      .replace
      '''
      
      string10 = 'This-is-a-string.'
      print(string10.replace('-', ' '))
      
      # 輸出結果
      This is a string.
      • 指定字符串的編碼方式
      '''
      .encode
      '''
      
      string11 = '我能夠'
      print(string11.encode('utf-8'))
      
      # 輸出結果
      b'\xe6\x88\x91\xe5\x8f\xaf\xe4\xbb\xa5'
  • 格式化輸出

    • %格式方法
    num1 = 1
    num2 = 1.2345
    string = 'abc'
    print('num1=%d, num2=%.2f, string=%s' % (num1, num2, string))
    
    # 輸出結果
    num1=1, num2=1.23, string=abc
    • format格式方法
    num1 = 1
    num2 = 1.2345
    string = 'abc'
    print('num1={}, num2={}, string={}'.format(num1, num2, string))
    print('num1={1}, num2={2}, string={0}'.format(string, num1, num2))
    print('num1={num1}, num2={num2}, string={string}'.format(num1 = 1, num2 = 1.2345, string = 'abc'))
    
    # 輸出結果
    num1=1, num2=1.2345, string=abc
    num1=1, num2=1.2345, string=abc
    num1=1, num2=1.2345, string=abc
    • f格式方法
    num1 = 1
    num2 = 1.2345
    string = 'abc'
    print(f'num1={num1}, num2={num2}, string={string}')
    
    # 輸出結果
    num1=1, num2=1.2345, string=abc
    
    # 注意:該方法在python3.6以後纔可使用

2.4 列表

  • 格式

    list,列表是一個由多個元素組成的有序集合,用[]表示。列表是可變的。

  • 列表操做

    • 沒有返回值的操做
    '''
    .append
    .extend
    .insert
    .reverse
    .remove
    .sort
    .clear
    '''
    
    list1 = [1, 2, 3, 'a', 'b', 'c', 'a']
    list2 = [5, 6, 7]
    
    list1.append('d')
    list1.extend(list2) # 將list2中的元素按序添加到list1的末尾
    list1.insert(3, 4) # 在索引3的位置插入元素4
    list1.reverse()
    list1.remove('a') # 若元素不存在,則報錯
    list2.sort() # 須要列表中的元素是同一類型
    list2.clear() # 將列表list2清空
    • 有返回值的操做
    '''
    .count
    .pop
    .index
    .copy
    '''
    
    list1 = [1, 2, 3, 'a', 'b', 'c', 'a']
    
    print(list1.count('a')) # 返回列表中'a'元素的個數
    print(list1.pop()) # 返回刪除的元素
    print(list1.index('a')) # 返回查找到的第一個元素所在的索引,若元素不存在,則報錯
    print(list1.copy()) # 返回一個新的列表,該列表的元素和list1徹底相同
    
    # 輸出結果
    2
    a
    3
    [1, 2, 3, 'a', 'b', 'c']
    • 切片

      列表的切片操做和字符串的切片操做同樣。

  • 列表推導式

    list1 = [item for item in range(10) if item % 2 == 0]
    print(list1)
    
    # 輸出結果
    [0, 2, 4, 6, 8]

2.5 元組

  • 格式

    tuple,元組是一個由多個元素組成的有序集合,用()表示。元組是不可變的。注意:只包含一個元素的元組格式爲:(元素1,),必定要有一個逗號!

  • 元組操做

    • 切片

      元組的切片操做和字符串的切片操做同樣。

    • 其餘

    '''
    .index
    .count
    '''
    
    tuple1 = (1, 2, 3, 4, 2, 5, 2)
    print(tuple1.index(2)) # 返回查找到的第一個元素所在的索引,若元素不存在,則報錯
    print(tuple1.count(2))
    
    # 輸出結果
    1
    3

2.6 集合

  • 格式

    set,集合是一個由多個不重複的元素組成的無序集合,用{}表示。集合是可變的。

    # 注意:空集合的定義方式爲set1 = set(),而不是set2 = {},後者爲空字典的定義方式。
    
    set1 = set()
    set2 = {}
    print(type(set1), type(set2))
    
    # 輸出結果
    <class 'set'> <class 'dict'>
  • 集合操做

    • 無返回值的操做
    '''
    .add
    .update
    .remove
    .discard
    .clear
    '''
    
    set1 = {1, 3, 5, 7}
    set2 = {2, 4, 6, 8}
    
    set1.add(9)
    set1.update(set2) # 將set2中的元素添加到set1中
    set1.remove(9) # 刪除集合中的指定元素,若元素不存在,則報錯
    set2.discard(2) # 刪除集合中的指定元素,若元素不存在,則操做無效,不報錯
    set2.clear()
    • 有返回值的操做
    '''
    .pop
    .copy
    '''
    
    set1 = {1, 3, 5, 7}
    
    print(set1.pop())
    print(set1.copy())
    
    # 輸出結果
    1
    {3, 5, 7}

2.7 字典

  • 格式

    dict,字典是一個由多個鍵值對組成的無序集合,用{}表示。集合是可變的。

  • 集合操做

    • 無返回值的操做
    '''
    .update
    .clear
    '''
    
    dict1 = {'name':'Aaron', 'age':10, 'email':'aaron@163.com'}
    dict2 = {'email':'12345@qq.com', 'sex':'male'}
    
    dict1.update(dict2) # 將dict2中的鍵值對添加到dict1中,若存在相同的鍵,則會替代原來的
    dict2.clear()
    • 有返回值的操做
    '''
    .get
    .keys
    .values
    .items
    .copy
    '''
    
    dict1 = {'name':'Aaron', 'age':10, 'email':'aaron@163.com'}
    
    print(dict1.get('age')) # 根據指定的鍵查找對應的值,若不存在,則返回None
    print(dict1.keys())
    print(dict1.values())
    print(dict1.items())
    print(dict1.copy())
    
    # 輸出結果
    10
    dict_keys(['name', 'age', 'email'])
    dict_values(['Aaron', 10, 'aaron@163.com'])
    dict_items([('name', 'Aaron'), ('age', 10), ('email', 'aaron@163.com')])
    {'name': 'Aaron', 'age': 10, 'email': 'aaron@163.com'}
  • 有序字典

    from collections import OrderedDict
    
    info = OrderedDict()
    info['k1'] = 123
    info['k2'] = 456
    
    print(info.keys())
    print(info.values())
    print(info.items())
    
    # 輸出結果
    odict_keys(['k1', 'k2'])
    odict_values([123, 456])
    odict_items([('k1', 123), ('k2', 456)])
相關文章
相關標籤/搜索