Python基礎系列----語法、數據類型、變量、編碼

1.基本語法                                                                                       python

  Python的語法比較簡單,採用縮進的方式。
編程

# print absolute value of an integer:
a = 100
if a >= 0:
    print(a)
else:
    print(-a)
View Code

  在上面代碼中,以‘# ’是註釋的標識符,能夠記錄當前代碼所表明的意義,解釋器會自動忽略這部份內容。網絡

  當語句以‘:’結尾時,縮進語句視爲代碼塊。編程語言

  在Python中,一般咱們以4個空格的縮進來進行區分。因爲我的習慣緣由,能夠在每句結束以後加一個‘;’號。一般在Python中,默認以換行爲新的一行,若想在一行輸入多句語句,必定要加‘;’,不然報錯。因爲Python採用縮進的語法,在你複製,粘貼語句時,必定要注意,從新檢查當前代碼的縮進格式。IDE很難格式化代碼。ide

  注意:在Python中,對大小寫十分敏感,若是大小寫錯誤,會報錯。函數

2.數據類型                                                                                        編碼

  數據類型:一個值的集合以及定義在這個值集上的一組操做spa

  Python提供的基本數據類型主要有:布爾類型、整型、浮點型、字符串、空值、列表、元組、集合、字典等等。在這裏主要介紹布爾類型、整型、浮點型、字符串、空值,其餘的後續介紹。操作系統

 

  2.1布爾類型                                                                                                               code

    在Python中,None、任何數值中的0、空字符串、空元組、空列表、空字典都被當作false,還要自定義的 方法返回0或者false,則其實例當作False,其餘對象均爲Ture。

 

>>>True
 True
>>>False
 False
>>>1>0
 True
>>>1>2
 False
View Code

 

 

     布爾類型只有兩個值,不是true,就是false。布爾值能夠進行運算,主要包括and,or,not

      a.and  與運算,只有全部都爲true,返回結果爲true

      b.or    或運算,只要其中有一個爲true,返回結果爲true

      c.not  是非運算,它是一個但畝運算符,把true變爲false,false變爲true

>>>True and True
    True
>>>True and False
    False
>>>False and False
    False

>>>True or False or True
    True

>>>not True
    False
>>>not False
    True
View Code

  2.2整形                                                                                                                     

    在Python內部對整數的處理分爲普通整數和長整數,普通整數長度爲機器位長,一般都是32位,超過這個範圍的整數就自動當長整數處理,而長整數的範圍幾乎徹底沒限制。例如:1,2,-1,1000000

  2.3浮點型                                                                                                                  

    Python的浮點數就是數學中的小數,相似C#語言中的double。在運算中,整數與浮點數運算的結果是浮點數,浮點數也就是小數,之因此稱爲浮點數,是由於按照科學記數法表示時,一個浮點數的小數點位置是可變的,好比,1.23x109和12.3x108是相等的。整數和浮點數在計算機內部存儲的方式是不一樣的,整數運算永遠是精確的,而浮點數運算則可能會有四捨五入的偏差。

  2.4字符串                                                                                                                  

   Python字符串便可以用單引號也能夠用雙引號括起來,甚至還能夠用三引號括起來。例如:‘abc’,"abc",'''I'm OK'''等。''或""自己只是一種表示方式,不是字符串的一部分。

    若是字符串內部既包含'又包含",可使用轉義符\來標識。轉義字符\能夠轉義不少字符,好比\n表示換行,\t表示製表符,字符\自己也要轉義,因此\\表示的字符就是\。

    若是字符串裏面有不少字符都須要轉義,就須要加不少\,爲了簡化,Python還容許用r''表示''內部的字符串默認不轉義.若是字符串內部有不少換行,用\n寫在一行裏很差閱讀,爲了簡化,Python容許用'''...'''的格式表示多行內容

  2.5空值                                                                                                                     

  空值是Python裏一個特殊的值,用None表示。None不能理解爲0,由於0是有意義的,而None是一個特殊的空值。

3.變量                                                                                       

 

變量名必須是大小寫英文、數字和_的組合,且不能用數字開頭.變量自己類型不固定的語言稱之爲動態語言,與之對應的是靜態語言。靜態語言在定義變量時必須指定變量類型,若是賦值的時候類型不匹配,就會報錯

a = 'ABC' 
b = a 
a = 'XYZ'
print(b)

  執行a = 'ABC',解釋器建立了字符串'ABC'和變量a,並把a指向'ABC':

  執行b = a,解釋器建立了變量b,並把b指向a指向的字符串'ABC':

  執行a = 'XYZ',解釋器建立了字符串'XYZ',並把a的指向改成'XYZ',但b並無更改:

 

  最後打印變量b,輸出值爲‘ABC’。

4.編碼                                                                                             

  在建立Python文件時,有些IDE會在文件最上方有這樣一段代碼  

#-*- coding: UTF-8 -*-

  這段代碼表示,當前文件以utf-8的格式編碼。有時,在瀏覽網頁,或者打開文件時,發現所有是一堆看不懂的字符串,這就是亂碼,也是由文件編碼致使的。因爲每一個國家的語言不一樣,各國有各國的標準,若是多種語言的文本混合其中,這時就會致使亂碼。所以爲了將全部語言統一到一套編碼規範中,產生了Unicode,這樣就不會再存在亂碼的狀況了。 Unicode標準也在不斷髮展,但最經常使用的是用兩個字節表示一個字符(若是要用到很是偏僻的字符,就須要4個字節)。現代操做系統和大多數編程語言都直接支持Unicode。在Python中,咱們一般都須要指定當前文件具體的一種編碼格式,避免後期產品亂碼的狀況。

  4.1ASCII編碼和Unicode編碼的區別:                                                                        

    ASCII編碼是1個字節,而Unicode編碼一般是2個字節。
    字母A用ASCII編碼是十進制的65,二進制的01000001;
    字符0用ASCII編碼是十進制的48,二進制的00110000,注意字符'0'和整數0是不一樣的;
    漢字中已經超出了ASCII編碼的範圍,用Unicode編碼是十進制的20013,二進制的01001110 00101101。

  若是統一成Unicode編碼,亂碼問題今後消失了。可是,若是你寫的文本基本上所有是英文的話,用Unicode編碼比ASCII編碼須要多一倍的存儲空間,在存儲和傳輸上就十分不划算。 因此,本着節約的精神,又出現了把Unicode編碼轉化爲「可變長編碼」的UTF-8編碼。UTF-8編碼把一個Unicode字符根據不一樣的數字大小編碼成1-6個字節,經常使用的英文字母被編碼成1個字節,漢字一般是3個字節,只有很生僻的字符纔會被編碼成4-6個字節。若是你要傳輸的文本包含大量英文字符,用UTF-8編碼就能節省空間

    

字符 ASCII Unicode UTF-8
A 01000001 00000000 01000001 01000001
x 01001110 00101101 11100100 10111000 10101101

  計算機系統通用的字符編碼工做方式: 在計算機內存中,統一使用Unicode編碼,當須要保存到硬盤或者須要傳輸的時候,就轉換爲UTF-8編碼。

 

  在Python中, ord()函數獲取字符的整數表示; chr()函數把編碼轉換爲對應的字符。

>>> ord('A')
65
>>> ord('')
20013
>>> chr(66)
'B'
>>> chr(25991)
''

  因爲Python的字符串類型是str,在內存中以Unicode表示,一個字符對應若干個字節。若是要在網絡上傳輸,或者保存到磁盤上,就須要把str變爲以字節爲單位的bytes。對bytes類型的數據用帶b前綴的單引號或雙引號表示:x = b'ABC'。要注意區分'ABC'和b'ABC',前者是str,後者雖然內容顯示得和前者同樣,但bytes的每一個字符都只佔用一個字節

  以Unicode表示的str經過encode()方法能夠編碼爲指定的bytes。要把bytes變爲str,就須要用decode()方法

>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
View Code

  Python源代碼也是一個文本文件,因此,當你的源代碼中包含中文的時候,在保存源代碼時,就須要務必指定保存爲UTF-8編碼。當Python解釋器讀取源代碼時,爲了讓它按UTF-8編碼讀取,咱們一般在文件開頭寫上這兩行。#!/usr/bin/env python3# -*- coding: utf-8 -*-。第一行註釋是爲了告訴Linux/OS X系統,這是一個Python可執行程序,Windows系統會忽略這個註釋;第二行註釋是爲了告訴Python解釋器,按照UTF-8編碼讀取源代碼,不然,你在源代碼中寫的中文輸出可能會有亂碼。

 

  4.2格式化                                                                                                                   

    採用的格式化方式和C語言是一致的,用%實現。

>>> 'Hello, %s' % 'world''Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000) 'Hi, Michael, you have $1000000.'

    %運算符就是用來格式化字符串的。在字符串內部,%s表示用字符串替換,%d表示用整數替換,有幾個%?佔位符,後面就跟幾個變量或者值,順序要對應好。若是隻有一個%?,括號能夠省略

     常見佔位符:%d(整數),%f(浮點數),%s(字符串),%x(十六進制整數)

     格式化整數和浮點數還能夠指定是否補0和整數與小數的位數

>>> '%2d-%02d' % (3, 1)
' 3-01'>>> '%.2f' % 3.1415926'3.14'

      有些時候,字符串裏面的%是一個普通字符,這個時候就須要轉義,用%%來表示一個%

>>> 'growth rate: %d %%' % 7'growth rate: 7 %'

5.寫在最後                                                                                       

  以上就是Python的一些基本語法、數據類型、編碼知識,有存在錯誤或不足的地方,及時溝通改正。下篇的時間可能要稍微朝後推遲了,週末須要去作個身體檢查,也但願你們的身體棒棒的! 

相關文章
相關標籤/搜索