上一篇:py1 html
基本語法python
運算符ide
基本數據類型函數
在 Python 3 中,非 ASCII 標識符也是容許的了(甚至是支持漢字了)。學習
保留字即關鍵字,咱們不能把它們用做任何標識符名稱。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 默認輸出是換行的,若是要實現不換行須要在變量末尾加上 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)
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 '''
is 與 == 區別:
is 用於判斷兩個變量引用對象是否爲同一個, == 用於判斷引用變量的值是否相等。
>>>a = [1, 2, 3] >>> b = a >>> b is a True >>> b == a True >>> b = a[:] >>> b is a False >>> b == a True
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
result = 值1 if 條件 else 值2
若是條件爲真,result爲值1,不然爲值2。
運算符優先級:
更多內容詳見http://www.runoob.com/python3/python3-basic-operators.html
Python3 中有六個標準的數據類型:
Python3 的六個標準數據類型中:
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 的區別在於:
注意:在 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
注意:
數值類型實例
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
有時候,咱們須要對數據內置的類型進行轉換,數據類型的轉換,你只須要將數據類型做爲函數名便可。
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) 將十進制轉換爲十六進制
如下實例將浮點數變量 a 轉換爲整數:
>>> a = 1.6 # 捨去小數部分 >>> int(a) 1
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
此處, _ 變量應被用戶視爲只讀變量。
>>> 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