python筆記2 - 函數,表達式,語句

1.python誕生
創始人:Guido van Rossum(荷蘭人)
時間:1989年聖誕節
地點:阿姆斯特丹


應用領域:
    系統運維
    網絡編程(搜索引擎,爬蟲,服務器編程等)
    科學計算
    人工智能,機器人
    web開發
    雲計算
    大數據及數據庫編程
    教育
    遊戲
    圖像


版本:
    python v2.3
    python v2.7
    python v3.5
    python v3.7(最新)


python的特點:
優點:面向對象:封裝 繼承 多態,適合合作開發
             (C++/JAVA/JAVA/PYTHON/SWIFT/C#)
      免費
      可移植
      可混合編程
      簡單易學易用
      開發效率高
      應用領域廣泛
缺點:
     與C/C++相比,執行速度不夠快


python官網:
    www.python.org
    可查看語言文檔信息


python的安裝:
    需要安裝python的解釋執行器,python不會編譯成機器語言
    兼容是操作系統:
        windows
        linux
        unix(mac os)
獲取地址:
        https:www.python.org/getit/下載


-----------------------------------------------------------------------------------------------------------------------------------


2.python的運行:
python的解釋執行器(依賴於其他的解釋執行器軟件)
    CPython(c語言開發)
    JPython(java語言開發)
    IronPython(c#語言開發)
    PyPy   (python語言開發)


編寫hello.py,寫入:
    print("hello world!")


執行python程序:
    法1: python3 hello.py
    法2: 編寫hello.py 第一行加入(類比shell編程)
          #!/usr/bin/python3    #解釋如下程序的名稱或路徑位置   ./shell.sh腳本文件首行必須添加此行數據
            chmod u+x hello.py  #添加用戶對文件hello.py的執行權限
            ./hello.py


常用的程序文件的後綴:
    .c              c語言
    .cpp/.cxx/.cc/.c  c++語言
    .java           java語言
    .py             python語言


在python交互模式下編寫執行代碼:
進入交互模式(進入python的解釋執行器):
    $ python3 <回車> 
退出交互模式:
    法1:>>>exit()
    法2:ctrl + d


python註釋:註釋是以 # 號開頭,直至行尾
  作用:讓 # 後的字符不參與執行
  python程序的組成:
      程序由模塊組成
      模塊由語句,函數,類等組成
      語句包含表達式
      表達式建立並處理對象


核心數據類型和內置對象:
    數字類型,字符串str,布爾類型bool,空值None
數字類型:
    正型(int)
    浮點型(float)
    複數(complex)


數字常量的表示方法:
整型數(python3後的整型數沒有最大限制):
    十進制:100,0,-5,99999999999999999999999999999999999999999999
    二進制(0b開頭):0b1101(13)
    八進制(0o開頭):0o11(9)
    十六進制(0x開頭):0x1A,0x1a2b3d4c


浮點數(小數):
    十進制寫法:3.14,0.14,.14
    科學計數法:小數 e/E 10的n次冪     6.18E-1(0.618),2.9979e8


複數complex
   格式:a+bj(a實部,b虛部),1+3J


布爾類型bool(python中bool類型不是數字類型):
    特點:只有兩種狀態:真 和 假
    真:True  
    假:False
    說明:對計算機來說,True是值爲1,False的值爲0


空值None:
作用:通常用來綁定佔位,變量解除綁定
特點:None是一個特殊的常量,不表示任何類型
說明:空值和任何其他類型對象進行比較永遠返回False


表達式 和運算符(操作符)
表達式:
    通常是讓計算機做一些事情並返回結果法表示方法


算數運算符:
        +    加
        -    減法
        *    乘以
        /    除法
        //   向下取整,地板除
        %    求餘
        **   冪運算
說明:
    +-:不會強制轉換成左邊的數據類型
    /:爲浮點數,整除時爲1位浮點數,不會丟棄小數部分
        1/3 = 0.3333333333333
        8/2 = 4.0
    //:地板除floordiv
        除的結果去掉小數部分,向下取整,直接丟棄小數部分,返回整數
        7/3 = 2.333333333
        7//3 = 2
        8//3 = 2
        3.25//1.5 = 2.0
        說明:有浮點數參與,返回浮點數;整數與整數的地板除返回整數
        思考題:-3 // 3 = -1
                -5 // 3 = -2  (注意其規則是向下取整,即向小的數據取整,正負數均是如此) 
    %:求餘(取模):
       5 % 3 = 2
       3.25 % 1.5 = 0.25
       -5 % 3 = 1             #這裏有個先取整的過程,向下取整先得到-2,所以-5-(-2)*3=1
       x % y 的結果位於區間[0,y)    


    **:冪運算
        4 ** 2 = 16
        3.0 ** 3.0 = 27.0


運算符的優先級:
    **
    *   /   //    %
    +   -


括號分組子表達式:
用()將表達式分組,()內部的表達式先進行運算


基本輸出函數print
部分格式:
    print(值1,值2,...)
例:
    print() 輸出空行
    print(1) 輸出:1
    print(1,2,3,4) 輸出結果:1 2 3 4


sublime行註釋快捷鍵:ctrl+/


變量:關聯一個對象的符號(標識符)
  命名方法:必須以字母或下劃線開頭,後跟字母,下劃線或數字,不能使用python的關鍵字
  說明:變量名區分大小寫
  合法的變量名:a a1 b bbb _a _ASD VAR
  不合法的變量名:1a 123 $ad +df 
  python的關鍵字:True False None is del if elif else


賦值運算符:=
  格式:變量名 = 表達式
  作用:1.當沒有此變量時,創建一個變量,同時將變量綁定到這個對象上(a=1,沒有a就創建a,a綁定在1上,a是變量,1是對象)
        2.當變量存在時,改變此變量關聯的對象(a=1,a=2,從此a表示2)
        3.用變量訪問此變量關聯的對象(None是對象,一個變量同一時間只能綁定一個對象)
說明:用變量可以訪問它綁定的對象
      兩個變量可以同時綁定同一個對象


python中關聯/綁定/引用:變量和一個對象的關聯關係


序列賦值語法:
  變量名1,變量名2,... = 對象1,對象2,...
  變量名1,變量名2,... = (對象1,對象2,...)
  (變量名1,變量名2,...) = [對象1,對象2,...]
  [變量名1,變量名2,...] = 對象1,對象2,...
  實例:
      a=10
      b=20
      a,b,c=10,20,30
      a,b = b,a       #可以交換a,b綁定的值


is / is not運算符:
is:判斷兩個變量是否綁定同一個對象,當綁定同一個對象時返回True,否則返回False
is not: 與is相反
語法:
    x is y
    x is not y


del:用於刪除變量,同時解除與對象的關聯,如果可能則釋放對象
  格式:del 變量名1,變量名2,...
  實例:
      a=100
      b=200
      法1:a = None   (a依舊是存在的)
      法2:del a      (a,100均消失)
  檢查:在交互模式下查看當前作用域的所有變量              
        help()函數
         >>>help("__main__")           ###雙下劃線   
        退出鍵:q    


-------------------------------------------------------------------------------------------------------------------------------------------------------

3.python函數
問題1:[]表示可以省略,例如 ls [x選項] [參數]
問題2:python需要頂格寫
問題3:indentation  error  表示縮進錯誤
問題4:ctrl+shift+l sublime中可以顯示多個光標(ctrl+L)

複合賦值運算符:
     +=  x += y  等同於  x=x+y
     -=  x -= y  等同於  x=x-y
     *=
     /=
     //=
     %=
     **=
要求:執行此操作時變量應先存在(即先有綁定)
實例:>>>x += 1   x        >>>x is not defined
      >>>x=10  x += 1  x   >>>11

關係運算符:
    <
    <=
    >
    >=
    ==
    !=
說明1:關係運算符返回的布爾類型的值(True/False)
說明2:None與任何對象相比都返回False(和自己相比返回True)
    實例:>>> x = None 
          >>> x = None
          >>>x = 70    >>> 80 > x > 60    #返回x是否在(80-60)的區間


生成對象的函數:
  float(obj):用於字符串或數字轉換爲浮點數,如果不能出參數,則返回0.0
  int(x[,base = 10]):用數字或字符串轉換爲整數,如果不給出參數,則返回0   
      說明:base表示進制關係,默認十進制
  bool(x):用x生成一個布爾值(True/False)
      說明:返回假值False的情況:
              False  邏輯假值
              None   空值
              0   0.0   0j   所有的數字0
              ""           空字符串
             ()          空元組
              []           空列表
              {}           空字典
              set()      空集合
  complex(r=0.0,i=0.0):用數字生成一個複數(實部爲r,虛部爲i)
  str(obj='')|  用對象轉換爲字符串
      實例:
             >>>x=int()         >>>x          >>>x=0
             >>>x=float()       >>>x          >>>x=0.0 
             >>>x=("1101",2)    >>>x          >>>x=13
             >>>bool(0)         >>>False
             >>>str(0)          >>>'0'
 
預置的數據型函數:
  abs(x)    取x絕對值
  round(number[,ndigits])  對數值進行四捨五入,ndigits是小數向右取整的位數,負數表示向左取整
  pow(x,y,z=None)  相當於x**y 或 x**y&z,其中z=None是默認填充
實例:>>>x = 13.456   >>>round(x)        >>>13
      >>>x = 13.456   >>>ruonnd(x,2)     >>>13.46     
      >>>x = 13.456   >>>ruonnd(x,-1)     >>>10.0     #保存十位,幹掉個位,對十位數進行四捨五入
      >>>pow(3,2,4)   >>>1


幫助函數:

help(x):查看文檔幫助
  實例:help(abs)


語句:語句由一些表達式組成,同城一條語句可以獨立執行來完成一部分事情並形成結果
    實例:print("hello")
          x = 1+2
注意:多條語句寫在一行需要用分號;分隔開
    實例:print("hello");x = 1+2


顯示換行:
  折行符:\
  說明:折行符必須放在一行的末尾,示意解釋執行器,下一行也是本行的語句(\後不可以加任何的字符,包括空格)  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  實例:x=11111111111111+11111111111111111+\
        +3333333+222
        print(x)
隱示換行:
   所有的括號的內容換行
   實例:1+(2+
            3+4+5+5
            +6
            +7+7)


基本輸入輸出函數:

基本輸入函數:input(其返回的一定是字符串)
作用:從標準輸入設備上讀取一個字符串,末尾的換行字符會被刪除
格式:input('提示字符串')
說明:返回輸入的字符串(僅python3)
實例:
    text=input("請輸入圓的半徑:")
    r=int(text)
    pi=3.14
    pritn("周長:",pi*2*r)
    print("面積:",pi*r**2)


基本輸出函數print:
作用:將一系列的值以字符串的形式輸出到標準輸出設備上,輸出設備默認爲終端
格式:
    print(value, ...,sep=' ',end='\n',file=sys.stdout,flush=False)


關鍵字參數的含義:
   sep:兩個值之間的分隔符,默認爲一個空格(輸出字符串間隔符號由空格變成了自定義的符號)
   end:輸出完畢後在流末尾自動追加一個字符串,默認爲換行符('\n表示換行')!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   flush:是否立即將流進行輸出(True指立刻輸出,False不是立刻輸出)
   file:流對象,默認爲sys.stdout
實例1:
       print(1,2,3,4)
       print(1,2,3,4,sep=' ')
       print(1,2,3,4,sep='!')              #間隔符變成!(如果輸出內容中含有字符串,則將字符串當做一個整體,其整體後面的分隔符變成!)
實例2:
       print("第一行文字",end='')         #不換行,在一行顯示
       print("第一行文字")
實例3:
       print("第一行文字",end='\n\n\n')   #中間空了3行
       print("第一行文字")
實例4:
      print("我可能在緩衝區")              #系統檢測換行符(print語句結尾默認有),這裏有換行符,所以立即進行打印
      import time
      time.sleep(10)
      print("我睡醒了")
實例5:
      print("我可能在緩衝區",end='')      #系統檢測換行符(print語句結尾默認有),這裏沒有換行符,暫時不打印
      import time
      time.sleep(10)                       #睡10秒
      print("我睡醒了")              #系統檢測換行符,發現換行符,將之前的放入緩衝區的“我可能在緩衝區”拉出來,將緩衝區清空,一起打印輸出


實例6:
      print("我可能在緩衝區",end='',flush=True)     #將緩衝區清空,刷新打印到屏幕上     
      import time
      time.sleep(10)                       
      print("我睡醒了")       
實例7:
      print("我可能在緩衝區",end='')
      print("\nhello")                            #系統將檢測到hello末尾默認添加的“\n”,會將前面沒有打印的,放入緩衝區的信息一併抽出來進行打印操作
      import time
      time.sleep(3)                       
      print("我睡醒了") 
 
總結:
(1)系統檢測換行符(換行符是個控制字符,print語句的末尾會默認添加換行符‘\n’,),輸出時系統偵測換行符,只有見到換行符纔會進行打印工作(打印是個極耗時間的操作,經常將多個語句關聯到一起,放入緩存區,發現換行符一起輸出);如果程序執行結束,也會將緩衝區清空,執行該有的操作
(2)如果放入在緩衝區,程序執行完畢後會將緩衝區清空,拉出打印到屏幕


-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

5.python語句

條件語句
if 語句:讓程序根據條件選擇性的執行某條語句或某些語句
語法:
  if 真值表達式1:
     語句1
  elif 真值表達式2:
     語句2
  elif 真值表達式3:
     語句3
  ...
  else:
     語句4
說明:


    elif子句可以有0個,1個或多個!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    else子句最多隻能有一個,也可以沒有;else後面不能再跟條件!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
總結:elif和else都可以沒有!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!    
   
實例:
text = input("請輸入一個數:")
n = int(text)
if n > 0:
    print("這是一個正數")
elif n < 0:                              #我們認爲elif是if的一部分,所以if和elif是一條語句
    print("這是一個負數")
else:
    print("這是0")
print("程序結束")


if語句嵌套:
  if語句本身是由多條語句組成的一條語句
  if語句可以作爲語句嵌套到另一個語句的內部
實例:
score = input("請輸入學生成績")
score = int(score)
if 0 <= score <= 100:
    if 0<=score<=60
        print("不及格")
else:
    print(""成績不合法)
print("程序結束")


條件表達式:
語法:
    表達式1 if 真值表達式 else 表達式2
作用:
    如果真值表達式的布爾環境值爲True,表達式1執行並返回對象,否則表達式2執行並返回對象
記憶:正確的時候返回左邊的,錯誤的時候返回右邊的
實例:a b
      a if a > b else b (條件表達式真返回左值a,假時返回右值b)


實例1:
score = input("請輸入學生成績")
score = int(score)
if score >= 60
   s="及格"
else:
   s="不及格"
print("結果:",s)


實例2(與實例1作用相同):
score = input("請輸入學生成績")
score = int(score)
s = "及格" if score > 60 else "不及格"  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
print("結果:",s)


實例3(去絕對值):
x = input("請輸入 一個數:")
x = int(x)
x = x if x >0 else -x   #等同於x=abs(x)


實例4(用於記憶):!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
A if a > b else B  正確的返回左邊,錯誤的返回右邊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 


pass:又名空語句,通常用於填充語法空白
語法:


實例1:
score = int(input("請輸入學生的成績:"))
if 0 <= score <= 100:                          #下面少一個操作語句,雖然人爲感到沒問題,但是不符合if語句的語法規則
else:
    print("成績不合法")
print(score)


實例2(修改實例1):
score = int(input("請輸入學生的成績:"))
if 0 <= score <= 100:    
    pass                      
else:
    print("成績不合法")
print(score)


2017/10/12






























發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章