編譯型
優勢:編譯器通常會有預編譯的過程對代碼進行優化。由於編譯只作一次,運行時不須要編譯,因此編譯型語言的程序執行效率高。能夠脫離語言環境獨立運行。
缺點:編譯以後若是須要修改就須要整個模塊從新編譯。編譯的時候根據對應的運行環境生成機器碼,不一樣的操做系統之間移植就會有問題,須要根據運行的操做系統環境編譯不一樣的可執行文件。python
解釋型
優勢:有良好的平臺兼容性,在任何環境中均可以運行,前提是安裝瞭解釋器(虛擬機)。靈活,修改代碼的時候直接修改就能夠,能夠快速部署,不用停機維護。程序員
缺點:每次運行的時候都要解釋一遍,性能上不如編譯型語言。算法
Python的運行過程shell
在說這個問題以前,咱們先來講兩個概念,PyCodeObject和pyc文件。編程
咱們在硬盤上看到的pyc天然沒必要多說,而其實PyCodeObject則是Python編譯器真正編譯成的結果。咱們先簡單知道就能夠了,繼續向下看。flask
當python程序運行時,編譯的結果則是保存在位於內存中的PyCodeObject中,當Python程序運行結束時,Python解釋器則將PyCodeObject寫回到pyc文件中。網絡
當python程序第二次運行時,首先程序會在硬盤中尋找pyc文件,若是找到,則直接載入,不然就重複上面的過程。多線程
因此咱們應該這樣來定位PyCodeObject和pyc文件,咱們說pyc文件實際上是PyCodeObject的一種持久化保存方式。併發
主要優勢:框架
主要缺點:
以己之長,較他之短。顯然是毫無心義的。沒有最好的,只有最適合的。
Old Name |
New Name |
_winreg |
winreg |
ConfigParser |
configparser |
copy_reg |
copyreg |
Queue |
queue |
SocketServer |
socketserver |
markupbase |
_markupbase |
repr |
reprlib |
test.test_support |
test.support |
安裝注意事項:
經常使用操做:
經常使用操做:
基本運算符
假設a=10 , b=20
計算
比較
賦值
邏輯
優先級
條件判斷語句: if爲語句開始,elif爲屢次不一樣條件判斷,else爲不知足上面的條件則執行。可多層嵌套
if condition :
exec
elif condition :
exec
else :
exec
迭代式循環語句:for。每循環一次從數據中按順序取出一個值,直到數據中全部值均被使用。可多層嵌套、
for i in range(0,9) :
exec
條件循環語句:while。 條件爲真則循環,條件爲假則中止循環。若條件定義爲True則成死循環。可多層嵌套。
while condition :
exec
while的條件可使用布爾值變量判斷循環是否成立。在多個while嵌套須要一次退出時,能夠經過修改該變量的布爾值一次控制多個循環退出。
while ...else 語句,while 後面的else 做用是當while 循環正常執行完,中間沒有被break 停止的話,就會執行else後面的語句
break與continue (僅適用於循環語句)
break 執行後會跳出此循環。外層循環不會受影響。
continue 執行後跳過此循環內後面的代碼,直接開始下一次循環。
練手代碼:
'1 使用while循環輸出1 2 3 4 5 6 8 9 10'
number=1
while number <= 10:
if number == 7 :
number+=1
continue
print(number)
number+=1
while number <= 10 :
if number != 7 :
print(number)
number+=1
'2. 求1-100的全部數的和'
number2 = 0
total2 = 0
while number2 <= 100 :
total += number2
number2+=1
print(total)
裝X方法:print(sum(range(101)))
'3. 輸出 1-100 內的全部奇數'
number3 = 0
total3 = 0
while number3 <= 100 :
if number3 % 2 == 1:
total3 += number3
number3+=1
裝X方法:print(sum(range(1,101,2)))
'4. 輸出 1-100 內的全部偶數'
number4 = 0
total4 = 0
while number4 <= 100 :
if number4 % 2 == 0:
total4 += number4
number4+=1
print(total4)
裝X方法:print(sum(range(0,101,2)))
'5. 求1-2+3-4+5 ... 99的全部數的和'
number5 = 0
odd = 0
even = 0
while number5 <= 99 :
if number5 % 2 == 1:
odd += number5
else :
even += number5
number5+=1
result = odd - even
print(result)
裝X方法:print(sum(range(1,100,2))-sum(range(0,100,2)))
'6. 用戶登錄(三次機會重試)'
user = 'jinyudong'
password = '666666'
count = 0
while count < 3 :
username = input('user->:')
passwd = input('passwd->:')
if username == user and password == passwd :
print('login OK !')
break
count+=1
print('login count is %d' %count)
else:
print('login error!')
'7:猜數字遊戲'
import random
secret = random.randint(1,99)
# print(secret)
guess = 0
count = 0
print("AHOY! i'm the Dread Pirate Roberts, and I have a secret!")
print("It is a number from 1 to 99. I'll give you 6 tries.")
while count < 6:
guess = int(input( "What's yer guess?"))
if guess < secret:
print("Too low,ye scurvy dog!")
elif guess > secret:
print("Too high,landlubber!")
else :
print("Avast! Ye got it! Found my secret,ye did!")
break
count += 1
else:
print("No more guesses! Better luck next time,matey!")
print("The secret number was",secret)
'8:猜年齡遊戲升級'import randomsecret = random.randint(1,99)guess = 0count = 0print("AHOY! i'm the Dread Pirate Roberts, and I have a secret!")print("It is a number from 1 to 99. I'll give you 6 tries.")while count < 6: guess = int(input( "What's yer guess?")) if guess < secret: print("Too low,ye scurvy dog!") elif guess > secret: print("Too high,landlubber!") else : print("Avast! Ye got it! Found my secret,ye did!") break if count == 5 : print("Max error number,continue place 'y',exit place 'n'") YorN = input('-->:') if YorN == 'y': count=0 continue else: exit() count += 1else: print("No more guesses! Better luck next time,matey!") print("The secret number was",secret)