標簽: Python
在Ubuntu下跑的,貌似裝了一些軟件以后已經有裝好的Python了,直接在控制臺上輸入python2
或者python3
進入相應的版本,第一行即給出了具體的版本號,最新的是Python 2.7.12
或Python 3.5.2
,目前2具有更好的兼容性。
python
寫的程序為*.py
,終端進入對應文件夾下python2 *.py
即可運行。
另外又裝了一款多平臺IDE, Pycharm,在Windows里跑很方便。
以下劃線開頭的標識符是有特殊意義的。以單下劃線開頭(_foo
)的代表不能直接訪問的類屬性,需通過類提供的接口進行訪問,不能用”from xxx import *”而導入;以雙下劃線開頭的__foo
代表類的私有成員;以雙下劃線開頭和結尾的__foo__
代表python里特殊方法專用的標識,如__init__()
代表類的構造函數。
和C相比而言,有幾處不同:
冒號表示段落的開始。用縮進代替花括號,但必須嚴格縮進一樣數量的空格。建議你在每個縮進層次使用 單個制表符 或 兩個空格 或 四個空格 , 切記不能混用。錯誤提示IndentationError: unindent does not match any outer indentation level使用斜杠( /
)將一行的語句分為多行顯示,而[]
, {}
或 ()
括號就不需要。
注釋符 #
或者 三引號
。
在同一行中使用多條語句,語句之間使用分號(;
)分割,行末可以不加。
在IDE中要支持中文,必須在設置中改變編碼類型為UTF-8
,并在行首加
如果還是報錯,注意這句話等號兩邊都不要加空格!
input
:會根據用戶的輸入來做類型的轉換 raw_input
:則會把用戶的輸入都作為一個字符串來處理(所見即所得)
輸出類似于C中sprintf的寫法
print "My name is %s and weight is %d kg!" % ('Zara', 21)解決py2會自動輸出回車的方法
from __future__ import print_function # 用py3的print的寫法print(x, end="") # 表示結束符不用回車也可以對整個文件做處理,新建文件、寫入內容、刪除文件。系統指令很多,要用時查表。
fo = open("a.cpp", "wb") # 打開/新建文件fo.write("a=10/nprint a") # 寫入內容fo.write(r''' #include <bits/stdc++.h>int main(){ int x, y; while(~scanf("%d%d", &x, &y)) printf("%d + %d = %d/n", x, y, x+y); return 0;}''') # r可以避免轉義字符生效fo.close() # 關閉文件import os # 載入os庫os.remove("a.cpp") # 移除文件簡單類型:int
long
float
complex
bool
容器類型:string
list
tuple
變量賦值不需要類型聲明。
可以為多個對象指定多個變量。例如下面兩句話等價,前面的賦值更加簡潔。
a, b, c = 1, 2, "john"a = 1; b = 2; c = "John"要調用一些數學變量和常用函數,先載入頭文件再調用
import mathmath.pimath.sin(x)help(math)help(math.acos)可以進行復數運算
x=2+3j 或 complex(2, 3)y=4+7jx/ystring使用方便 Python 接收單引號( '
)、雙引號( "
)、三引號( '''
或 """
) 來表示字符串,引號的開始與結束必須的相同類型的。 其中三引號可以引用多行。 +
表示連接,*
表示重復。
列表[]等價于C語言里的數組 +
表示連接,*
表示重復。
元組()類似于列表,但只讀,不能二次賦值,系統會報錯
tuple = (4,5,'pp')ct = list(tuple) # 元組轉換到列表,可進行二次賦值tt = tuple(ct) # 反之,將列表轉換到元組元字典{}等價于C++里的map
dict = {}dict['one'] = "This is one" # dict[key] = valuedict[2] = "This is two"tinydict = {'name': 'john','code':6734, 'dept': 'sales'} # dict = {key : value}print dict['one'] # 輸出鍵為'one' 的值print dict[2] # 輸出鍵為 2 的值print tinydict # 輸出完整的字典print tinydict.keys() # 輸出所有鍵print tinydict.values() # 輸出所有值刪除對象
del a和C差不多的就不贅述了,記一些不一樣的 //
等價于對除法結果取floor()
**
等價于pow()
~
求補運算 <>
即!=
邏輯運算符用單詞直接給 and
or
not
一些測試運算符,非常接近正常語言 in
not in
成員是否屬于某一類 is
is not
對象實體一致性
設置了while...else...
以及for...else...
正常循環時,執行while
或者for
后會執行else
,但如果中途跳出,則不能執行else
。
for
循環迭代體有多種設置方式
定義函數后調用,其中參數都是直接引用的,和C不同。
def 函數名(參數x, y, z, *var): “一些說明” 函數體 return ***調用函數時可以選擇一一對應傳入參數;也可以打亂順序指定變量名,此時也可省略一些參數。其中*表示參數數量不確定,傳入多個以后會保存在元組var里。
函數名(xx, yy, zz)函數名(y=yy, x=xx, z=zz)lambda函數 lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。
sum = lambda arg1, arg2: arg1 + arg2;在同一目錄下生成新文件xxx.py
,在其他python文件下調用函數只需
想在模塊里使用全局變量,則先聲明后再使用
global var異常類型系統已有定義。也可以用戶自定義。為了保證代碼出錯時不會立刻停止,
try: # 一段試著被執行的代碼 fh = open("testfile", "w") fh.write("這是一個測試文件,用于測試異常!!")except IOError:# 當try里的內容出現錯誤,則在下面的except里找對應錯誤 print "Error: 沒有找到文件或讀取文件失敗"else:# 不出現錯誤則執行 print "內容寫入文件成功" fh.close()可擴展:如果你需要一段運行很快的關鍵代碼,或者是想要編寫一些不愿開放的算法,你可以使用C或C++完成那部分程序,然后從你的Python程序中調用。
新聞熱點
疑難解答