第一天寫,python的部分基礎知識
# 1、使用while迴圈輸入 1 2 3 4 5 6 8 9 10 a = 0 b =1 while b: a+=1 if a == 7: print(' ',end = '') continue elif a == 11: break print (a,' ',end = '') print('') # 2、求1-100的所有數的和 a = 0 i = 0 while a <101: c = lambda a: a+1 a= c(a) i = a+iView Codeprint(i) # 3、輸出 1-100 內的所有奇數 for i in range(1,101): print(i if i%2 else'','\t',end = '') print('' if i%20 else'\n',end = '') else:print() # 4、輸出 1-100 內的所有偶數 for i in range(1,101): print('' if i%2 else i,'\t',end = '') print('' if (i-1)%20 else'\n',end = '') else:print() # 5、求1-2+3-4+5 ... 99的所有數的和a = 0 for i in range(1,100): a+= i if i%2 else 0-i else:print(a) # 6、使用者登陸(三次機會重試 times = 3 while times: if input('使用者名稱') == 'aaa' and input('密碼') == 'bbb': print('登入成功') break else: times -=1 if times: print('再來一次') else:print('三次機會用完了')
巨集觀上:
python2原始碼不統一,不標準,更新混亂,重複程式碼太多
python3統一的標準,去掉了重複的程式碼
想著弄個google上網,沒弄成
很多內容出自:
www.cnblogs.com/jin-xin/articles/7459977.html#title-0-1-0
1自我介紹
大家好,我叫阿河,來自山東。 中專學歷。在這之前搞的C,主要用於微控制器的過程函式的編寫。後來為了弄清楚網上的p2p資料,就接觸了python。加了一些QQ群,在群裡有網路視訊,就開始了自學。感覺自己可以從中層起步進行學習,可是學了4天,出問題了。還是從基礎開始吧。
2python介紹
先介紹一下python吧,
2.1出生與應用
發明者Guido van Rossun 89年冬創作。當時他在阿姆斯特丹,這個地方好像是從連雲港出發的絲綢之路的終點啊。
2017年,也就是去年7月TIOBE排行第四。百度了一下,有培訓機構以TIOBE為關鍵詞做軟文的。
主要的應用我不管,我只是想學來做爬蟲,做資料自動做電算處理資料用。
資料顯示在1.0裡就有了匿名函式,map(用指定函式對目標組進行批量加工,這裡的加工是指,把批量的石頭加工成相等批量的雕像)filter(過濾,就是個有色眼睛,只看美女,對目標人群裡的美女全都要電話號,做成電話清單,然後就一個一個的打電話騷擾他們)reduce(還沒學,不知道做什麼的)
時隔6年,2000年國慶後的半個月2.0出來了,增加了記憶體回收。就是倉庫裡的各種雕像,如果沒有掛價格牌子的都雜碎,雜碎到成為空氣,如果要做新雕像就把空氣變成石頭,再進行雕刻成雕像(物件)。
到了04年,非典的那幾年吧,又是冬天11月底(那時候只有光棍節,沒有天貓節)更新為2.4,主要的是在謀個領域等價於windows XP的Django誕生了,這下就可大發了(發達了的意思)
後來就是10年黨建的那幾天,出了2.7。08年出3.0對三方庫做了優化。
2.2與別的區別
編譯:解釋
靜態:動態
強類:弱類
編譯:去飯店點好菜,菜上完了,開始吃。下交來吃的時候,就快速的把上次吃過的菜再次上桌一次:
解釋:到了飯店,點一個菜,上一個菜,吃一個菜,在吃飽之前的過程中有很多情況哦。
動態:價格標籤可以掛在雕像上,可以掛在多個雕像上,也可以掛在美女身上。這裡的標籤只是一個佔位符,(佔個位子而已)
靜態:價格標籤可以掛在雕像上,那就是雕像的價格籤,不能掛在美女身上了。這裡的標籤可以是指標,可以指向空,如果非空,就只能指向一個8*10KG(一個10KG是一個位)的美女,如果給一個16*10KG的美女,他就強制把美女劈開,只收一半,只有在標籤+1向下一個8*10KG的記憶體地址時,才能找到另半個美女。(開始沒想那麼多,寫到這裡感覺鮮血淋漓)
2.3優缺點
發明這個python的時候就是想讓新手好了入門的。
第三方的開發程式碼很多的,可以拿來手,就不用自己去寫了,說是人生苦短,我用python.
低層的物理管理到主機板的電平訊號什麼的不用管了,只管寫想法就好了的。
如果硬體環境變了,那是直譯器要做了,不用我們管。所以在移植方面,沒的說了。
如果想用python驅動並控制硬體,就和C擴大加工,就好了
如果在C裡面想省事,也可以用python生成機器碼,加到C裡面進行呼叫。
批量化資料處理時,會比別的慢一點,可以影響也不大的。
程式碼是明文的。別人也可以看,我就看過別人的,一個p2p網站的。
GIL在執行直譯器的時候,作業系統生成了一個任務,直譯器就在這一個任務裡完成,不會要去找操作器要第二個任務的生成,可能是怕不同步吧,等吧,會有三方庫去嘗試弄他的。
2.4編譯器的各類
分類:cpython(C語言識別的位元組碼,官方主要推的直譯器)
jypython(支援java可識別的位元組碼,由java轉換成0101的二進位制程式碼)
ironpython
其它python
pypy(先編譯,一次性編譯成位元組碼,然後給作業系統,但是開發效率相對慢)
3部分基礎知識
3.1常量
比如 兀
3.2註釋
方便自己回憶,方便別人看懂
單行註釋#
多行註釋“”“”“” 或‘’‘’‘’
3.3基礎資料型別
數字的型別,用於計算。
程式碼的型別,用於執行程式碼。
字元的呢,‘100’與100(int)怎麼區別呢?
用type()來識別
python2:
32位機,int取值-2**31到2**31-1
64位機,int取值-2**63到2**63-1
超限的是long型別
python3:都是int的型別
字串:str 用引號括在內的都是字串(重複上一行,ctrl+d)
可以進行相加運算(拼接)
不可以相減
布兒型:True False
3.4執行程式碼
3.5直譯器
3.6內容編碼
編譯器是對01的機器語言進行驅動cpu的,而我們寫的是程式碼(字母),所在要把字母轉換成01的格式,p2的轉換方式是每8個位就弄到CPU處理一下,p3就不一樣了,他是4個8位處理一下,就是unicode,但是如果佔位少的字母也用4個字就多浪費了3倍的儲存資料的空間。所以就出現了utf-8.通過二次讀取,確定字母的佔位數,取出了所有的佔位數,給cpu去處理。
3.7變數
變數:將一些執行的中間結果暫存到記憶體中,以便後續程式碼呼叫。在房間里弄出一個雕像,在上面掛個牌子。
1/必須由字母,數字,下劃線任意組合,且不能數字開頭
2/不能是python中的關鍵字
3/變數具有可描述性
賦值:就是造個標籤,然後掛在房間的一個雕像上面
3.8程式互動
input()內建函式,用他得到的內容只能是字元的格式 每一個內建函式,後面還有好幾十個呢
3.9格式化輸出
在字元的輸入的時候可以加一些佔茅坑的,自習課佔位子的,%s男的女的都可以,%d就只能是女的了。
如果說,不想讓別人在你邊上,想多佔人坑,怎麼辦?你佔了坑,沒有人來用,學校是不允許的,
這說說吧,你同學本來是幫你佔位子的,可是現在他想用坑怎麼辦,只能是讓第三個人來幫他了
3.10基本運算子
算數運算 + - * / % ** //
比較運算 == != <> > < >= <=
賦值運算 = += -= *= /= %= **= //=
邏輯運算 and or not
成員運算 in not in
身份運算
位運算
3.11流程控制
諸葛亮給了三個錦囊,在有問題的時候就開啟一個,這就是諸葛的流程控制,你想當諸葛亮嗎?
還有哦,晚上讓驢拉磨,天不這亮不能停,累不死不能停,這也算流程控制。
4python的環境
1/到官網去下載,安裝 ,配置環境變數(windows10的更舒服一些)
5練習
# 1、使用while迴圈輸入 1 2 3 4 5 6 8 9 10 a = 0 b =1 while b: a+=1 if a == 7: print(' ',end = '') continue elif a == 11: break print (a,' ',end = '') print('') # 2、求1-100的所有數的和 a = 0 i = 0 while a <101: c = lambda a: a+1 a= c(a) i = a+i print(i) # 3、輸出 1-100 內的所有奇數 for i in range(1,101): print(i if i%2 else'','\t',end = '') print('' if i%20 else'\n',end = '') else:print() # 4、輸出 1-100 內的所有偶數 for i in range(1,101): print('' if i%2 else i,'\t',end = '') print('' if (i-1)%20 else'\n',end = '') else:print() # 5、求1-2+3-4+5 ... 99的所有數的和 a = 0 for i in range(1,100): a+= i if i%2 else 0-i else:print(a) # 6、使用者登陸(三次機會重試 times = 3 while times: if input('使用者名稱') == 'aaa' and input('密碼') == 'bbb': print('登入成功') break else: times -=1 if times: print('再來一次') else:print('三次機會用完了')