標籤:
一直聽說python語音的簡單易用而又強大,今天終於忍不住借本書,開始接觸接觸一下它,下面結合書本和自己的一些體會,寫一下剛剛接觸python的東西,重點寫一些和C++有區別的地方。
(1)輸入input()、輸出print()
注意輸入input()括弧中是提示符,傳回值才是輸入的數
如a=input("請輸入一個數")
(2)資料類型
1)python中使用變數不需要提前對變數進行聲明,可以直接使用,這點倒有點想MATLAB,而不是C。
2)python中所表示的整數大小隻受限制於記憶體的大小,並不是固定的位元組數。這個簡直爽爆了,大整數運算再也不需要轉換成字串去處理了。
3)可以使用[]來訪問字串等序列中的某一項,但是str類型與基本的數實值型別都是固定的,值一旦設定就不能改變
如:
(3)python中存在一些組合資料類型
如元組、列表,其中元組是固定大小的,而列表是可變的,建立列表可以使用[]
(4)python中傳遞變數全部都是按照引用傳遞(不像C++中可以選擇 值、指標和引用)
這樣全都按照引用傳遞,對應固定類型(如字串、整數、元組)的參數傳遞其實與C中按值傳遞類似,而可變類型(如列表)的參數傳遞與C中按引用傳遞類似。
如:
(5)邏輯操作符
1)身份操作符 is
這個是由於前面說到的python變數都是按照引用進行傳遞的,所以使用is來驗證兩個變數是否指向的是同一個對象。
這裡需要注意的是字串變數和普通變數的區別,所謂引用其實就是一個“標籤”,對記憶體中的某一個或一段資料添加一個“標籤”作為別名而已,如果將一個變數賦值成已經存在記憶體中的一個字串,那麼記憶體中將不再重新儲存一遍,而整數等其他類型是需要儲存兩份的(這個在C++中也是這樣的)。
2)比較操作符
python中可以進行鏈式比較(這個在C++中是不行的)
如可以寫成這樣 0<a<=10
3)成員運算子 in、not in
這裡說明下python中字串的表示並不區別單引號和雙引號
4)邏輯運算子 and or not
注意這裡python雖然使用的仍是短路邏輯,但是傳回值並不是bool型,而是返回結果(結果指的是退出邏輯判斷前最後一個運算元)
(6)語句塊
python中並不像C++那樣使用{}來區分語句塊,而是直接使用縮排的方法,一般每級縮排都使用4個空格。
(7)控制流程語句
1)if
if 條件1:
語句1
elif 條件2:
語句2
elif 條件3:
語句3
。。。
else:
語句n
2)while與C++幾乎一樣
3)for...in
4)異常處理
try:
try_suite
execpt exception1 as val1:
處理語句1
execpt exception2 as val2:
處理語句2
...
(8)算數運算
大部分與C++相似,只是要特別注意"/"在python中是不會取整的,而是得到小數
(9)函數的建立與調用
函數格式:
def functionname(arg1,arg2,...)
函數語句
不需要定義函數的傳回值,如果有傳回值,直接return,沒有的話就認為是沒有傳回值
(10)模組的調用
模組的調用使用:import 模組名
現有的模組可以直接使用import調用,自己寫的可以先儲存成.py的檔案,然後使用import調用
下面給一個產生隨機數的小程式:
1 import random 2 3 4 def get_int(msg,min,default): 5 while True: 6 try: 7 line=input(msg) 8 if(not line and default is not None): 9 return default10 i=int(line)11 if i<min:12 print("input must >=min")13 else:14 return i15 except ValueError as err:16 print(err)17 18 19 20 rows=get_int("rows",1,None)21 cols=get_int("cols",1,None)22 min=get_int("min",-100,0)23 max=get_int("max",min,100)24 25 26 row=027 while row<rows:28 col=029 line=""30 while col<cols:31 i=random.randint(min,max)32 s=str(i)33 line=line+s34 line=line+" "35 col=col+136 print(line)37 row=row+1;
python學習筆記之初識Python