[19/09/08-星期日] Python的幾個概念和語法

1、表達式、語句、程序、函數程序員

  一、表達式  就是一個相似於數學公式的東西 ,好比:10 + 5 8 - 4;表達式通常僅僅用了計算一些結果,不會對程序產生實質性的影響編輯器

        若是在交互模式中輸入一個表達式,解釋器會自動將表達式的結果輸出函數

  二、語句   在程序中語句通常須要完成某種功能,好比打印信息、獲取信息、爲變量賦值。如:print()、input()、a=10 學習

        語句的執行通常會對程序產生必定的影響,在交互模式中不必定會輸出語句的執行結果。編碼

  三、程序(program) 程序就是由一條一條的語句和一條一條的表達式構成的。命令行

  四、函數(function) 函數就是一種語句,函數專門用來完成特定的功能。函數長的形如:xxx()3d

      分類:code

      內置函數 ,由Python解釋器提供的函數,能夠在Python中直接使用對象

      自定義函數 ,由程序員自主的建立的函數,當咱們須要完成某個功能時,就能夠去調用內置函數,或者自定義函數 。
    構成:
      參數: ()中的內容就是函數的參數,函數中能夠沒有參數,也能夠有多個參數,多個參數之間使用","隔開blog

      返回值 :返回值是函數的返回結果,不是全部的函數都有返回值。        

2、書寫規範
    一、在Python中嚴格區分大小寫;

    二、Python中的每一行就是一條語句,每條語句以換行結束,不像其餘語言以「;」結尾;

    三、Python中每一行語句不要過長(規範中建議每行不要超過80個字符),在sublime編輯器設置不要超過80個字符,"rulers":[80],

    四、一條語句能夠分多行編寫,多行編寫時語句後邊以‘’\‘’結尾;

    五、Python是縮進嚴格的語言,因此在Python中不要隨便寫縮進;

    六、在Python中使用 # 來表示註釋,# 後的內容都屬於註釋,註釋的內容將會被解釋器所忽略,註釋要求簡單明瞭,通常習慣上#後邊會跟着一個空格。

3、基本語法

  一、字面量(常量)和變量

    字面量就是一個一個的值,好比:1,2,3,4,5,6,‘HELLO’,所表示的意思就是它的字面的值,在程序中能夠直接使用字面量;

    變量(variable)變量能夠用來保存字面量,而且變量中保存的字面量是不定的,變量自己沒有任何意思,它會根據不一樣的字面量表示不一樣的意思。

            通常咱們在開發時,不多直接使用字面量,都是將字面量保存到變量中,經過變量來引用字面量。

  二、變量和標識符 

  變量:

  Python中使用變量,不須要聲明(和類型),直接爲變量賦值便可,a = 10。

    不能使用沒有進行過賦值的變量,若是使用沒有賦值過的變量,會報錯 NameError: name 'b' is not defined。

  Python是一個動態類型的語言,能夠爲變量賦任意類型的值,也能夠任意修改變量的值,a = 'hello',也是對的。

  標識符:

     在Python中全部能夠自主命名的內容都屬於標識符,好比:變量名、函數名、類名,標識符必須遵循標識符的規範

  (1)、標識符中能夠含有字母、數字、_,可是不能使用數字開頭,例子:a_1 _a1 _1a

  (2)、標識符不能是Python中的關鍵字和保留字,也不建議使用Python中的函數名(如print)做爲標識符,由於這樣會致使函數被覆蓋。

  (3)、命名規範:若是使用不符合標準的標識符,將會報錯 SyntaxError: invalid syntax 

    下劃線命名法,全部字母小寫,單詞之間使用_分割,如:max_length, min_length, hello_world, xxx_yyy_zzz

    帕斯卡命名法(駝峯命名法),首字母大寫,每一個單詞開頭字母大寫,其他字母小寫,如:MaxLength, MinLength, HelloWorld, XxxYyyZzz 

  三、數據類型

    指的就是變量的值的類型,也就是能夠爲變量賦哪些值

    分類:數值型 (整形、浮點型、複數), 布爾型, 字符型, 空值   

    在Python數值分紅了三種:整數、浮點數(小數)、複數

    (1)int型,在Python中全部的整數都是int類型,a = 10  b = 20,Python中的整數的大小沒有限制,能夠是一個無限大的整數,不用擔憂內存溢出。

       如 c = 9999999999999999999 ** 100是對的,若是數字的長度過大,可使用下劃線做爲分隔符,c = 123_456_789,下劃線自動忽略。

      d = 0123 ,10進制的數字不能以0開頭,print輸出時,其餘進制的整數,只要是數字打印時必定是以十進制的形式顯示的。

      # 二進制 0b開頭,c = 0b10 ,十進制的2

      # 八進制 0o開頭,c = 0o10,十進制的8

      # 十六進制 0x開頭,c = 0x10,十進制的16

       也能夠經過運算符來對數字進行運算,而且能夠保證整數運算的精確,如,c = 100,c = c + 3

    (2)float型, 浮點數(小數),在Python中全部的小數都是float類型,c = 1.23

       對浮點數進行運算時,可能會獲得一個不精確的結果,如c = 0.1 + 0.2 ,可能會輸出0.30000000000000004

    字符型

    (3)string型,字符串(str)用來表示一段文本信息,字符串是程序中使用的最多的數據類型,在Python中字符串須要使用引號引發來。

      如,s = 'hello',字符串必須使用引號引發來,不使用不是字符串。引號能夠是雙引號,也能夠是單引號,可是注意不要混着用

      s = 'hello' s = "hello" 可是s = 'hello" 引號不能混合使用,會出現 SyntaxError: EOL while scanning string literal。

    注意: 相同的引號之間不能嵌套

    錯誤示範, s = "子曰:"學而時習之,樂呵樂呵!"",正確的,s = '子曰:"學而時習之,樂呵樂呵!"'

    # 長字符串,單引號和雙引號不能跨行使用

    s = '鋤禾日當午,\
      汗滴禾下土,\
      誰知盤中餐,\
      粒粒皆辛苦'   , 這樣打印出來都在1行。

    因此使用三重引號來表示一個長字符串 3個單引號''' 或3個雙引號""",三重引號能夠換行,而且會保留字符串中的格式

    s = '''鋤禾日當午,
      汗滴禾下土,
      誰知盤中餐,
      粒粒皆辛苦''',這樣打印出在4行

    # 轉義字符,可使用 \ 做爲轉義字符,經過轉義字符,能夠在字符串中使用一些特殊的內容

       \' 表示', \" 表示",\t 表示製表符,\n 表示換行符,\\ 表示反斜槓,\uxxxx 表示Unicode編碼,UTF-8編碼的萬國碼。

      s = "子曰:\"學而時習之,\\\\n樂呵樂呵!\""

      s = '\u2250'

    #格式化字符串

    (1)字符串之間也能夠進行加法運算, 若是將兩個字符串進行相加,則會自動將兩個字符串拼接爲一個字符串。

       如,a = 'abc' + 'haha' + '哈哈',輸出abchaha哈哈

      print("a = "+a) , 這種寫法在Python中不常見,經常使用的是這個 print('a =',a)

           字符串不能和其餘的類型進行加法運算,若是作了會出現異常 TypeError: must be str, not int。例如a=12, print("a = "+a) ,會報錯,由於前邊是

    字符串後邊是整形變量。

    (2)在建立字符串時,能夠在字符串中指定佔位符 

       %s 在字符串中表示任意字符

       %f 浮點數佔位符

       %d 整數佔位符

     如,b = 'Hello %s'%'孫悟空' ,輸出Hello 孫悟空,用孫悟空填充%s

       b = 'hello %s 你好 %s'%('tom','孫悟空')

       b = 'hello %3.5s'%'abcdefg'   # %3.5s字符串的長度限制在3-5之間,不夠在前邊填空格,多了砍掉後邊。

       b = 'hello %s'%123.456   str是萬能的,填整形和浮點型均可以。

       b = 'hello %.2f'%123.456  保留2位小數,自動四捨五入。

       b = 'hello %d'%123.95  直接把小數給舍掉。 

       b = '呵呵'

        print('a = %s'%a)

    (3)格式化字符串,能夠經過在字符串前添加一個f(引號前邊)來建立一個格式化字符串

     在格式化字符串中能夠直接嵌入變量如 a和b

    c = f'hello {a} {b}'

    print(f'a = {a}')

  練習 建立一個變量保存你的名字,而後經過四種格式化字符串的方式,在命令行中顯示,歡迎 xxx 光臨!

  name='孫悟空'

  print("歡迎"+name+"光臨!")

  print("歡迎",name,"光臨!")

  print('歡迎%s光臨!'%name)

  print(f'歡迎{name}光臨!') 

  # 字符串的複製(將字符串和數字相乘)

  a = 'abc'   * 在語言中表示乘法

   若是將字符串和數字相乘,則解釋器會將字符串重複指定的次數並返回

  a = a * 20

  print(a) 字符串複製20次輸出,Python中獨有

  (4)布爾值(bool)

  布爾值主要用來作邏輯判斷,布爾值一共有兩個 True (真)和 False(假)

  a = True

  a = False

    print('a =',a)

  布爾值實際上也屬於整型,True就至關於1,False就至關於0

   print(1 + False) ,輸出爲1

    (5) None(空值)None專門用來表示不存在

     b = None

       print(b) 輸出爲None

   擴展-1:類型檢查

  a = 123    數值    print('a =',a)

  b = '123'   字符串  print('b =',b)

   type()函數用來檢查值的類型, 該函數會將檢查的結果做爲返回值返回,能夠經過變量來接收函數的返回值。

  c = type('123')

  c = type(a)

  print(type(b))  輸出<class 'str'>

  print(type(1))  輸出 <class 'int'>

  print(type(1.5))  輸出<class 'float'>

  print(type(True)) 輸出 <class 'bool'>

  print(type('hello'))  輸出<class 'str'>

  print(type(None))  輸出 <class 'NoneType'>

  擴展-2:類型裝換(將一個類型的對象轉換爲其餘對象,類型轉換不是改變對象自己的類型,而是根據當前對象的值建立一個新對象) 

  類型轉換四個函數 int()、 float()、 str()、 bool()

  (1)、 int() 能夠用來將其餘的對象轉換爲整型

  規則:

     布爾值:True -> 1 False -> 0

          浮點數:直接取整,省略小數點後的內容

    字符串:合法的整數字符串,直接轉換爲對應的數字。若是不是一個合法的整數字符串(如小數字符串'11.5'),則報錯 ValueError: invalid literal for int()

           with base 10: '11.5',對於其餘不可轉換爲整型的對象,直接拋出異常 ValueError。

  (2)、 float() 和 int()基本一致,不一樣的是它會將對象轉換爲浮點數

  (3)、 str() 能夠將對象轉換爲字符串

     True -> 'True'

     False -> 'False'

    123 -> '123'

   (4)、bool() 能夠將對象轉換爲布爾值,任何對象均可以轉換爲布爾值

       規則:對於全部表示空性的對象都會轉換爲False,其他的轉換爲True

      哪些表示的空性:0 、 None 、 '' 

    例如:

    a = True

   調用int()來將a轉換爲整型,int()函數不會對原來的變量產生影響,他是對象轉換爲指定的類型並將其做爲返回值返回

   若是但願修改原來的變量,則須要對變量進行從新賦值。

    a = int(a)

    a = False

    a = int(a)

    a = '123'

    a = int(a)

    a = 11.6

    a = int(a)

    a = '11.5'

     a = int(a)

    a = None

     a = int(a)

    a = 1

    a = float(a)

    a = False

    a = float(a)

    a = 123

    a = str(a)

    a = None

    a = bool(a)

    print('a =',a)

    print('a的類型是',type(a))

     b = 456

    print('hello'+str(b))

  四、 對象(object)

    Python是一門面向對象的語言,一切皆對象!程序運行當中,全部的數據都是存儲到內存當中而後再運行的,對象就是內存中專門用來存儲指定數據的

  一塊區域,對象實際上就是一個容器,專門用來存儲數據 ,如數值、字符串、布爾值、None都是對象

   

   結構:每一個對象中都要保存三種數據

   一、id(標識)

      id用來標識對象的惟一性,每個對象都有惟一的id,對象的id就至關於人的身份證號同樣,能夠經過id()函數來查看對象的id,id是由解析器生成的,

在CPython中,id就是對象的內存地址, 對象一旦建立,則它的id永遠不能再改變。

    二、type(類型)

   類型用來標識當前對象所屬的類型,好比:int str float bool。類型決定了對象有哪些功能,經過type()函數來查看對象的類型, Python是一門強類型的語言,

對象一旦建立類型便不能修改。

  三、 value(值)

  值就是對象中存儲的具體的數據,對於有些對象值是能夠改變的;

  對象分紅兩大類,可變對象和不可變對象,可變對象的值能夠改變,不可變對象的值不能改變,以前學習的對象都是不可變對象。

  變量和對象:

          對象並無直接存儲到變量中,在Python中變量更像是給對象起了一個別名,變量中存儲的不是對象的值,而是對象的id(內存地址),

   當咱們使用變量時,實際上就是在經過對象id在查找對象,變量中保存的對象(的地址即id),只有在爲變量從新賦值時纔會改變,變量和變量之間是相互獨

   立的,修改一個變量不會影響另外一個變量.。

相關文章
相關標籤/搜索