1. 程式人生 > >第一天寫,python的部分基礎知識

第一天寫,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+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('三次機會用完了')
View Code

 

巨集觀上:

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('三次機會用完了')