初識Python
一、編程語言簡介
編程語言分類
1.機器語言:機器語言是用二進制代碼表示的計算機能直接識別和執行的機器指令
優點:靈活、直接執行、速度快
缺點:移植性差,不同的計算機的機器語言是不相通的
2.匯編語言:和機器語言類似,都是直接對硬件進行操作,不同的是指令采用了英文縮寫,比機器語言更容易識別和記憶
優點:執行速度快,能完成一般高級語言不能實現的操作
缺點:源程序復雜,容易出錯,難度大,需要很多計算機專業知識
3.高級語言:用人能讀懂的命令來編寫程序
優點:大大降低了編程難度,使程序員把更多的精力放在編程而不是語法上
缺點:高級語言不能直接被計算機識別,必須經過轉化才能執行,所以速度比機器語言和匯編語言慢
高級語言按轉化的方式可以分為解釋型和編譯型
編譯型:指程序執行之前,就將程序源代碼“翻譯”成機器指令,並保存成二進制文件,優點是編譯後的代碼可以直接在機器上運行,速度高而且還能在一定程度上防止他人看到源碼,缺點是不容易調試,程序修改一個小地方,也要先修改源碼,再重新編譯
解釋型:由相應語言的解釋器把源代碼翻譯成相應的目標代碼,這種方式非常靈活,調試非常方便,但是不能生成獨立的可執行文件,且應用程序不能脫離解釋器
二、Python簡介
1989年,為了打發聖誕節假期,Guido開始寫Python語言的編譯器。Python這個名字,來自Guido所摯愛的電視劇Monty Python’s Flying Circus。他希望這個新的叫做Python的語言,能符合他的理想:創造一種C和shell之間,功能全面,易學易用,可拓展的語言。
根據最新的TIOBE排行榜,Python已經超過c#成為第四名
Python可以應用於眾多領域,如:數據分析、組件集成、網絡服務、圖像處理、數值計算和科學計算等眾多領域。目前業內幾乎所有大中型互聯網企業都在使用Python,如:Youtube、Dropbox、BT、Quora(中國知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、騰訊、汽車之家、美團等。
Python雖然也是先編譯成字節碼然後再交給Python解釋器去執行,但Python不能像Java一樣是混合型,因為只有在import導入py文件時,才會產生pyc字節碼文件。其他情況執行py文件,產生的字節碼文件不會保留下來。
總是有人在質疑Python的運行速度,但是對於大多數應用程序來說,運行速度並沒有那麽重要,相比而言,開發效率更被看重。
三、Python安裝
http://www.cnblogs.com/zhang-can/p/6953332.html
四、第一個Python程序
安裝好Python後,我們來寫第一個Python程序,輸出“hello world”
1.在命令提示行中直接輸入交互命令
C:\Users\zhangcan>python Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> print (‘hello world‘) hello world
2.用文本編輯器寫好命令,在拿到命令提示行中執行
C:\Users\zhangcan>python C:\Users\zhangcan\Desktop\1.txt hello world
五、變量
1. 變量用來記錄程序運行中變化的值
2. 變量的聲明和引用
#!/usr/bin/env python name=‘zhangcan‘ #變量的聲明 print(name ) #通過變量名引用變量,並打印
3. 變量名的命名規範:
1)變量名只能是字母、數字或下劃線的組合
2)變量名不能以數字開頭,並且盡量避免以下劃線開頭,因為下劃線開頭的文件有特殊含義
3)變量名不能用關鍵字,Python中的關鍵字有: and,as,assert,break,class,continue,def,del,elif,else,except,exec,finally,for,from,global,if,import,in,lambda,not,or,pass,print,raise,return,try,while,with,yield
六、輸入輸出
python3中只有一種輸入就是 input,和python2中的raw_input作用一樣,就是把用戶的輸入當做字符串,python2中也有input的命令,是用戶輸入什麽類型,就保存成什麽類型
用type()可查看數據類型
C:\Users\zhangcan>python Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> user=input() zhangcan >>> print(user,type(user)) zhangcan <class ‘str‘>
C:\Users\zhangcan>python2 Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> num=raw_input() 123 >>> print(num,type(num)) (‘123‘, <type ‘str‘>) >>> num=input() 123 >>> print(num,type(num)) (123, <type ‘int‘>) >>>
還有一種需求就是當用戶輸入用戶名和密碼的時候,設置密碼不可見,需要利用getpass模塊中的getpass方法,代碼如下
#!/bin/bash/env python import getpass password=getpass.getpass(‘請輸入密碼:‘) print(password)
註意這個模塊不能再pycharm中執行,需要到命令提示行中執行
七、簡單的運算符
算數運算符:+,-,*,/,%,**,//
註意:Python中的除法是浮點運算,//可以實現整除
**是冪運算,如7**2的運算結果是49
賦值運算符:=,+=,-=,*=,/=,%=,**=,//=
比較運算符:==,!=,<>,<,>,<=,>=
位運算符:$,|,^,~,<<,>>
邏輯運算符:and,or,not
八、流程控制
1.if分支結構
示例:猜老大爺年紀
age = 88 gus = input(‘請輸入老大爺年紀:‘) if gus > ‘age‘: print(‘大了‘) elif gus < ‘age‘: print(‘小了‘) else: print(‘厲害‘)
2.while循環
continue退出本層循環,break退出本次循環
示例:實現用戶登錄(有三次嘗試機會)
username = ‘zhangcan‘ password = ‘123‘ tag = 0 while tag<3: intp = input(‘請輸入用戶名:‘) pas = input(‘請輸入密碼:‘) tag = tag + 1 if intp==username and pas==password: print(‘login successful‘) break else: print(‘name or password wrong‘) continue
3.for循環
示例:輸出九九乘法表
for i in range(1,10): for j in range(1,i+1): print(‘%s*%s=%s‘ %(i,j,i*j),end=‘ ‘) print( )
初識Python