python基礎知識總結


一、python的優缺點

  優點:

  1. 優美、清晰、簡單
  2. 高級語言
  3. 開發效率高
  4. 可移植性、可拓展性、可嵌入性

  缺點:

  1. 運行速度慢
  2. 代碼不能加密
  3. 線程不能利用多CPU

二、python2與python3的區別

  代碼:

  1. python2:代碼混亂,重復代碼較多,冗余
  2. python3:代碼崇尚優美、清晰、簡單

  print:

  1. python2:print是一個語句
  2. python3:print是一個函數

  input:

  1. python2:raw_input()接收字符串,input()接收數字
  2. python3:input()接收的全部是字符串

  編碼方式:

  1. python2:默認編碼是ASCII碼(若想使用中文:#_*_coding:utf-8_*_)
  2. python3:默認編碼是utf-8,支持中文

  不等運算符:

  1. python2:可以使用!=或者><
  2. python3:只能使用!=

  創建迭代計數器:

  1. python2:xrange
  2. python3:range

  repr:

  1. python2:repr可以是語句
  2. python3:只允許使用repr()函數

  文件:

  1. python2:可以使用!=或者><
  2. python3:只能使用!=

  整型:

  1. python2:存在long型
  2. python3:全部為int型

  修改語法:

  1. python2:字典的keys,values,items以及map,filter,reduce返回的都是一個列表
  2. python3:字典的keys,values,items以及map,filter,reduce返回一個可迭代對象

  新增語法:

  1. python2:print和exec語句,無nolocal等方法
  2. python3:print和exec改為函數,新增nolocal等方法

  繼承:

  1. python2:默認經典類(新式類需要(object))
  2. python3:只有新式類

三、開發的種類

  編譯型

  缺點:排錯慢,開發效率低,不可移植

  優點:執行效率高

  典型:C語言,go語言

  解釋型

  缺點:執行效率低

  優點:排錯快,開發效率高,可移植

  典型:python,PHP

  混合型

  典型:java,C#

四、python的種類

  Cpython:基於C語言開發的

  lpython

  Jpython

  PyPy:目前執行最快的

五、變量與常量

  常量:一直不變的量,約定俗稱,全部大寫為常量

 

  變量:把程序的運行結果存放在內存中,以便后期代碼的調用

  要求:

  1. 必須由數字、字母、下划線組成
  2. 不能以數字開頭
  3. 不能是關鍵字
  4. 不能是中文,不能太長,要有可描述性
  5. 官網推薦下划線old_boy和駝峰體OldBoy

六、語句

  if語句

   elif分支判斷

  while語句

   flag(標志位)

   break(完全結束循環)

   continue(跳出本次循環)

   else(循環正常退出執行)

  for語句 

   break(完全結束循環)

   continue(跳出本次循環)

   else(循環正常退出執行)

  in,not in

s = '老男孩alexwusir'
print('老男孩' in s)    # True
print('老男孩wusir' in s)    # False
print('老男' in s)    # True
print('老男' not in s)    # False

# 結果表明在一個字符串中,用一個母字符串中包含的定義的子字符串必須是連續的為True,不連續是False,in表示包含,not in表示非包含

七、邏輯運算符

# and or not
# 第一種:前后都是比較運算。
# 優先級:()> not > and > or 同一個優先級,從左至右依次計算。
print(1 > 2 and 3 < 4 and 3 > 2 or 2 < 3)  # True
print(2 > 1 and 3 < 4 or 4 > 5 and 2 < 1)  # True
print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8)  # False
# 第二種:前后都是數值運算。
'''
x or y if x True,則 return x,否則 return y
'''
print(1 or 3)  # 1print(2 or 3)  # 2
print(0 or 3)  # 3
print(-1 or 3)  # -1
print(1 and 2)  # 2
print(0 and 2)  # 0

# 第三種:混合。
print(1 > 2 or 3 and 4)  # 4
print(2 or 2 > 3 and 4)  # 2
print(0 or 2 > 3 and 4)  # False

#數據類型轉換:
'''
int ---> bool  非0即True,0為False
bool---> int  True  1  False 0
print(int(True))
print(int(False))
print(bool(100))
print(bool(0))
'''

八、格式化輸出

#% 占位符 s str 字符串 d digit 數字
#第一種:
name = input('請輸入你的姓名:')
age = input('請輸入你的年齡:')
hobby = input('請輸入你的愛好:')
msg = '我叫%s,今年%d歲,愛好%s' % (name,int(age),hobby)
print(msg)
#第二種
dic = {'name':'老男孩','age':51,'hobby':'無所謂'}
msg = '我叫%(name)s,今年%(age)d歲,愛好%(hobby)s' % dic
print(msg)

#在格式化輸出中單純的顯示%  用%% 解決。
name = input('請輸入你的姓名:')
age = input('請輸入你的年齡:')
msg = '我叫%s,今年%d歲,學習進度為1%%' % (name,int(age))
print(msg)

九、編碼

  一、基本概念

  1,發電報:滴滴滴滴 實際是高低電平。
   密碼本:
   今 0000 0001
   天 0000 0101
   喝 0000 0011
   酒 0000 1100
   去 0001 1010
   呀 0001 0001

   0010010 1000011 1100101 010001

  2,計算機在存儲,和傳輸的時候, 01010101
        初期密碼本:
    asiic 包含數字,英文,特殊字符。八位
    01000001 01000010 01000011 A B C
    8位 = 1 byte 表示一個字符。

    萬國碼unicode,將所有國家的語言包含在這個密碼本。
    初期:16位,兩個字節,表示一個字符。
    A : 00010000 00010010
    中: 00010010 00010010
    升級:32位,四個字節,表示一個字符。
    A : 00010000 00010010 00010000 00010010
    中: 00010010 00010010 00010010 00010010
    資源浪費。

    升級:utf-8。最少用8位(一個字節),表示一個字符。
    英文:a :00010000 用8位表示一個字符。
    歐洲:00010000 00010000 16位兩個字節表示一個字符。
    亞洲 中 :00010000 00010000 00010000 24位,三個字節表示一個字符。

    utf-16

    gbk:國標。
    只包含:英文中文。
    英文:a :00010000 8位,一個字節表示一個字符。
    中文:中:00010000 00010000 16位,兩個字節表示一個字符。
    gb2312.....

    8 bit = 1byte
    1024byte=1kb
    1024kb = 1MB
    1024MB = 1GB
    1024GB = 1TB

  二、用法 

    存儲和傳輸是0101,但是不可以使用Unicode編碼進行傳輸

    python3中的編碼:python3中str在內存中的編碼方式是Unicode。python3中的str不能直接存儲和發送。

    bytes的編碼方式是非Unicode(UTF-8,GBK,GB2312....)

    對於英文:str表現形式: s = 'qiujie' 
    內部編碼為:Unicode
    byte表現形式s = b'kuoiea'
    內部編碼形式為非unicode

    對於中文:str表現形式: s = '中國' 
    內部編碼為:Unicode
    byte表現形式s = b'\xe4\xb8\xad\xe5\x9b\xbd'
    內部編碼形式為非unicode


    encode編碼:將str類型轉換成byte類型
    decode解碼:將byte類型轉換成str類型

s = 'alex'
s1 = s.encode('utf-8')  # unicode ---> utf-8 編碼
s3 = s1.decode('utf-8')  # utf-8 ---> unicode 解碼
print(s3)

# s = 'alex'
# s1 = s.encode('gbk')  # unicode ---> gbk 編碼
# s3 = s1.decode('gbk')  # gbk ---> unicode 解碼
# print(s3)

#gbk ---> utf-8
# s = 'alex'
# s1 = s.encode('gbk')
# print(s1)
#
# s2 = s1.decode('gbk').encode('utf-8')
# print(s2)

 

 

  python基礎思維導圖鏈接:https://www.processon.com/view/link/5ae71b80e4b019d3a919be99

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM