py2 基本數據類型 基本語法

目錄

上一篇:py1 html

基本語法python

運算符ide

  1. 算數運算:
  2. 比較運算:
  3. 賦值運算:
  4. 邏輯運算:
  5. 成員運算:
  6. 身份運算:
  7. 位運算:
  8. 三元運算:

基本數據類型函數

  1.  Number(數字)
  2.  布爾值

基本語法

標識符

  • 第一個字符必須是字母或下劃線 
  • 標識符的其餘的部分由字母、數字和下劃線組成
  • 標識符對大小寫敏感

在 Python 3 中,非 ASCII 標識符也是容許的了(甚至是支持漢字了)。學習

python保留字

保留字即關鍵字,咱們不能把它們用做任何標識符名稱。Python 的標準庫提供了一個 keyword 模塊,能夠輸出當前版本的全部關鍵字:ui

>>> import keyword >>> keyword.kwlist ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
 

註釋

Python中單行註釋以 # 開頭,實例以下:spa

#!/usr/bin/python3  # 第一個註釋 print ("Hello, Python!") # 第二個註釋

輸出結果爲:Hello, Python!.net

多行註釋能夠用多個 # 號,還有 ''' 和 """:(多行註釋在python還能當作字符串來使用)code

#!/usr/bin/python3  # 第一個註釋  # 第二個註釋 ''' 第三註釋 第四註釋 ''' """ 第五註釋 第六註釋 """ print ("Hello, Python!")

執行以上代碼,輸出結果爲:Hello, Python!htm

行與縮進

python最具特點的就是使用縮進來表示代碼塊,不須要使用大括號 {} 。

縮進的空格數是可變的,可是同一個代碼塊的語句必須包含相同的縮進空格數。實例以下:

if True: print ("True") else: print ("False")

如下代碼最後一行語句縮進數的空格數不一致,會致使運行錯誤:

if True: print ("Answer") print ("True") else: print ("Answer") print ("False") # 縮進不一致,會致使運行錯誤

以上程序因爲縮進不一致,執行後會出現相似如下錯誤:

File "test.py", line 6 print ("False") # 縮進不一致,會致使運行錯誤 ^ IndentationError: unindent does not match any outer indentation leve

多行語句

Python 一般是一行寫完一條語句,但若是語句很長,咱們可使用反斜槓(\)來實現多行語句,例如:

total = item_one + \ item_two + \ item_three

在 [], {}, 或 () 中的多行語句,不須要使用反斜槓(\),例如:

total = ['item_one', 'item_two', 'item_three', 'item_four', 'item_five']

Print輸出

print 默認輸出是換行的,若是要實現不換行須要在變量末尾加上 end=""

x="a" y="b" # 換行輸出 print( x ) print( y ) print('---------') # 不換行輸出 print( x, end=" " ) print( y, end=" " ) print()

# 每一個輸出後面加個字符
print('alex','jim','jack',sep='中文')
# alex中文jim中文jack

打印進度條

import time, sys for i in range(50): print('#', end='') # sys.stdout.write('#')
 sys.stdout.flush() time.sleep(0.1)

用戶輸入

#!/usr/bin/env python  #_*_coding:utf-8_*_   #name = raw_input("What is your name?") #only on python 2.x name = input("What is your name?") print("Hello " + name )

輸入密碼時,若是想要不可見,須要利用getpass 模塊中的 getpass方法,即:(在cmd中不可見,在python中可見)

import getpass # 將用戶輸入的內容賦值給 name 變量 pwd = getpass.getpass("請輸入密碼:") # 打印輸入的內容 print(pwd)

pyc是什麼鬼

Python是一門解釋型語言?

我初學Python時,聽到的關於Python的第一句話就是,Python是一門解釋性語言,我就這樣一直相信下去,直到發現了*.pyc文件的存在。若是是解釋型語言,那麼生成的*.pyc文件是什麼呢?c應該是compiled的縮寫纔對啊!

爲了防止其餘學習Python的人也被這句話誤解,那麼咱們就在文中來澄清下這個問題,而且把一些基礎概念給理清。

簡述Python的運行過程

在說這個問題以前,咱們先來講兩個概念,PyCodeObject和pyc文件。

咱們在硬盤上看到的pyc天然沒必要多說,而其實PyCodeObject則是Python編譯器真正編譯成的結果。咱們先簡單知道就能夠了,繼續向下看。

當python程序運行時,編譯的結果則是保存在位於內存中的PyCodeObject中,當Python程序運行結束時,Python解釋器則將PyCodeObject寫回到pyc文件中。

當python程序第二次運行時,首先程序會在硬盤中尋找pyc文件,若是找到,則直接載入,不然就重複上面的過程。

因此咱們應該這樣來定位PyCodeObject和pyc文件,咱們說pyc文件實際上是PyCodeObject的一種持久化保存方式。

 

運算符

一、算數運算:

二、比較運算:

三、賦值運算:

Python 中的變量不須要聲明。每一個變量在使用前都必須賦值,變量賦值之後該變量纔會被建立。

在 Python 中,變量就是變量,它沒有類型,咱們所說的"類型"是變量所指的內存中對象的類型。

多個變量賦值

Python容許你同時爲多個變量賦值。例如:

a = b = c = 1

a, b, c = 1, 2, "runoob"

四、邏輯運算:

五、成員運算:

六、身份運算:

注: id() 函數用於獲取對象內存地址。

a = 10 b = a a = 123
print(id(a)) print(id(b)) print(a is b) c = [1,2,3] d = c c[1] = 4
print(id(c)) print(id(d)) print(d is c) ''' 140733173719904 140733173716288 False 2292888461896 2292888461896 True '''
View Code

is 與 == 區別:

is 用於判斷兩個變量引用對象是否爲同一個, == 用於判斷引用變量的值是否相等。

>>>a = [1, 2, 3] >>> b = a >>> b is a True >>> b == a True >>> b = a[:] >>> b is a False >>> b == a True
View Code

七、位運算:

a = 0011 1100             b = 0000 1101

 *按位取反運算規則(按位取反再加1)   詳解http://blog.csdn.net/wenxinwukui234/article/details/42119265

a = 0011 1100 b = 0000 1101

----------------- a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001

~a  = 1100 0011
View Code

八、三元運算符

result = 值1  if 條件 else 值2

若是條件爲真,result爲值1,不然爲值2。

運算符優先級:

 更多內容詳見http://www.runoob.com/python3/python3-basic-operators.html

基本數據類型

Python3 中有六個標準的數據類型:

  • Number(數字)
  • String(字符串)
  • List(列表)
  • Tuple(元組)
  • Set(集合)
  • Dictionary(字典)

Python3 的六個標準數據類型中:

  • 不可變數據(3 個):Number(數字)、String(字符串)、Tuple(元組);
  • 可變數據(3 個):List(列表)、Dictionary(字典)、Set(集合)。 

1.Number(數字)

Python3 支持 int、float、bool、complex(複數)

在Python 3裏,只有一種整數類型 int,表示爲長整型,沒有 python2 中的 Long。

浮點數用來處理實數,即帶有小數的數字。相似於C語言中的double類型,佔8個字節(64位),其中52位表示底,11位表示指數,剩下的一位表示符號。

float類型默認保留小數點後16位

>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d)) <class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

此外還能夠用 isinstance 來判斷:

>>>a = 111 
>>> isinstance(a, int) True >>>

isinstance 和 type 的區別在於:

  • type()不會認爲子類是一種父類類型。
  • isinstance()會認爲子類是一種父類類型。

注意:在 Python2 中是沒有布爾型的,它用數字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定義成關鍵字了,但它們的值仍是 1 和 0,它們能夠和數字相加。

當你指定一個值時,Number 對象就會被建立:

var1 = 1

var2 = 10

您也可使用del語句刪除一些對象引用:

del語句的語法是:

del var1[,var2[,var3[....,varN]]]]

您能夠經過使用del語句刪除單個或多個對象。例如:

del var

del var_a, var_b

數值運算:

>>>5 + 4  # 加法 9 >>> 4.3 - 2 # 減法 2.3 >>> 3 * 7 # 乘法 21 >>> 2 / 4 # 除法,獲得一個浮點數 0.5 >>> 2 // 4 # 除法,獲得一個整數 0 >>> 17 % 3 # 取餘 2 >>> 2 ** 5 # 乘方 32

注意:

  • 一、Python能夠同時爲多個變量賦值,如a, b = 1, 2。
  • 二、一個變量能夠經過賦值指向不一樣類型的對象。
  • 三、數值的除法包含兩個運算符:/ 返回一個浮點數,// 返回一個整數。
  • 四、在混合計算時,Python會把整型轉換成爲浮點數。

數值類型實例

int float complex
10 0.0 3.14j
100 15.20 45.j
-786 -21.9 9.322e-36j
080 32.3e+18 .876j
-0490 -90. -.6545+0J
-0x260 -32.54e100 3e+26J
0x69 70.2E-12 4.53e-7j

Python還支持複數,複數由實數部分和虛數部分構成,能夠用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型

咱們可使用十六進制和八進制來表明整數:

>>> number = 0xA0F # 十六進制 >>> number 2575 >>> number=0o37 # 八進制 >>> number 31

Python 數字類型轉換

有時候,咱們須要對數據內置的類型進行轉換,數據類型的轉換,你只須要將數據類型做爲函數名便可。

  • int(x) 將x轉換爲一個整數。

  • float(x) 將x轉換到一個浮點數。

  • complex(x) 將x轉換到一個複數,實數部分爲 x,虛數部分爲 0。

  • complex(x, y) 將 x 和 y 轉換到一個複數,實數部分爲 x,虛數部分爲 y。x 和 y 是數字表達式。

  • bin(x) 將十進制轉換爲二進制

  • oct(x) 將十進制轉換爲二進制

  • hex(x) 將十進制轉換爲十六進制

  • str(x ) 將對象 x 轉換爲字符串    

如下實例將浮點數變量 a 轉換爲整數:

>>> a = 1.6  # 捨去小數部分 >>> int(a) 1

Python 數字運算

Python 解釋器能夠做爲一個簡單的計算器,您能夠在解釋器裏輸入一個表達式,它將輸出表達式的值。

表達式的語法很直白: +, -, * 和 /, 和其它語言(如Pascal或C)裏同樣。例如:

>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5*6) / 4
5.0
>>> 8 / 5  # 老是返回一個浮點數 1.6

注意:在不一樣的機器上浮點運算的結果可能會不同。

在整數除法中,除法 / 老是返回一個浮點數,若是隻想獲得整數的結果,丟棄可能的分數部分,可使用運算符 // :

>>> 17 / 3  # 整數除法返回浮點型 5.666666666666667 >>> >>> 17 // 3 # 整數除法返回向下取整後的結果 5 >>> 17 % 3 # %操做符返回除法的餘數 2
>>> 13.648/3.548
3.8466741826381057
>>> 13.497%5.1356
3.2257999999999996 >>> 5 * 3 + 2 17

注意:// 獲得的並不必定是整數類型的數,它與分母分子的數據類型有關係。

>>> 7//2
3
>>> 7.0//2
3.0
>>> 7//2.0
3.0

等號 = 用於給變量賦值。賦值以後,除了下一個提示符,解釋器不會顯示任何結果。

>>> width = 20
>>> height = 5*9
>>> width * height 900

Python 可使用 ** 操做來進行冪運算:

>>> 5 ** 2  # 5 的平方 25 >>> 2 ** 7 # 2的7次方 128

變量在使用前必須先"定義"(即賦予變量一個值),不然會出現錯誤:

>>> n   # 嘗試訪問一個未定義的變量 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'n' is not defined

不一樣類型的數混合運算時會將整數轉換爲浮點數:

>>> 3 * 3.75 / 1.5
7.5
>>> 7.0 / 2
3.5

在交互模式中,最後被輸出的表達式結果被賦值給變量 。例如:

>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax 12.5625 >>> price + _ 113.0625 >>> round(_, 2) 113.06

此處, 變量應被用戶視爲只讀變量。 

 2.布爾值

  True or False
  1 或 0
  「」空字符串爲False
  只要字符串不是空就是True 「 」
Python中,False,0,'',[],{},()均可以視爲假
>>> a = True >>> type(a) <class 'bool'> >>> a = 0 >>> type(a) <class 'int'> >>> a = False >>> type(a) <class 'bool'>
a = 1
if a:
print(a)
else:
print(a+10)
# 輸出爲 1

 3.擴展數據類型

  • namedtuple():生成能夠用名字訪問元素內容的tuple子類
  • deque:雙端隊列
  • Counter:計數器,用來計數
  • OrderedDict:有序字典
  • defaultdict:帶有默認值的字典
相關文章
相關標籤/搜索