?安裝過程及配置
-
安裝過程準備:
下載好Python的安裝程序后,開始安裝,在進入安裝界面后一定確保勾選將Python加入到系統環境變量的路徑里。如圖所示:
-
如果沒有選取,那么按照下面的步驟進行操作。在桌面上用鼠標右鍵點擊我的電腦并選擇屬性選項。如圖所示:
-
在彈出的屬性設置菜單中點擊高級系統設置。如圖所示:
-
在高級系統設置面板中點擊環境變量。如圖所示:
-
在彈出的環境變量設置中找到系統環境變量設置,并選中path選項,雙擊,或者點擊編輯選項。如圖所示:
-
在彈出的編輯窗口中,新建一個環境變量為python安裝路徑。添加后進行保存并退出。如圖所示:
1,運行第一段python代碼。
在d盤下創建一個t1.py文件內容是:
print('hello world')
打開windows命令行輸入cmd,確定后 寫入代碼python d:t1.py?
您已經運行了第一個python程序, 即:終端---->cmd-----> python ?文件路徑。 回車搞定~
2,解釋器。
上一步中執行 python d:t1.py?時,明確的指出 t1.py 腳本由 python 解釋器來執行。
如果想要類似于執行shell腳本一樣執行python腳本,例:?
./t1.py?
,那么就需要在 hello.py 文件的頭部指定解釋器,如下:123#!/usr/bin/env python
?
?print
?"hello,world"
如此一來,執行:?.
/t1.py
?即可。ps:執行前需給予t1.py 執行權限,chmod 755 t1.py
?3,內容編碼。
python2解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill),而python3對內容進行編碼的默認為utf-8。
ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基于拉丁字母的一套電腦編碼系統,主要用于顯示現代英語和其他西歐語言,其最多只能用 8 位來表示(一個字節),即:2**8 = 256,所以,ASCII碼最多只能表示 256 個符號。
Bin(二進制)Oct(八進制) Dec(十進制)Hex(十六進制)縮寫/字符解釋0000 00000000NUL(null)空字符0000 00011101SOH(start of headline)標題開始0000 00102202STX (start of text)正文開始0000 00113303ETX (end of text)正文結束0000 01004404EOT (end of transmission)傳輸結束0000 01015505ENQ (enquiry)請求0000 01106606ACK (acknowledge)收到通知0000 01117707BEL (bell)響鈴0000 100010808BS (backspace)退格0000 100111909HT (horizontal tab)水平制表符0000 101012100ALF (NL line feed, new line)換行鍵0000 101113110BVT (vertical tab)垂直制表符0000 110014120CFF (NP form feed, new page)換頁鍵0000 110115130DCR (carriage return)回車鍵0000 111016140ESO (shift out)不用切換0000 111117150FSI (shift in)啟用切換0001 0000201610DLE (data link escape)數據鏈路轉義0001 0001211711DC1 (device control 1)設備控制10001 0010221812DC2 (device control 2)設備控制20001 0011231913DC3 (device control 3)設備控制30001 0100242014DC4 (device control 4)設備控制40001 0101252115NAK (negative acknowledge)拒絕接收0001 0110262216SYN (synchronous idle)同步空閑0001 0111272317ETB (end of trans. block)結束傳輸塊0001 1000302418CAN (cancel)取消0001 1001312519EM (end of medium)媒介結束0001 101032261ASUB (substitute)代替0001 101133271BESC (escape)換碼(溢出)0001 110034281CFS (file separator)文件分隔符0001 110135291DGS (group separator)分組符0001 111036301ERS (record separator)記錄分隔符0001 111137311FUS (unit separator)單元分隔符0010 0000403220(space)空格0010 0001413321!嘆號 0010 0010423422"雙引號 0010 0011433523#井號 0010 0100443624$美元符 0010 0101453725%百分號 0010 0110463826&和號 0010 0111473927'閉單引號 0010 1000504028(開括號0010 1001514129)閉括號0010 101052422A*星號 0010 101153432B+加號 0010 110054442C,逗號 0010 110155452D-減號/破折號 0010 111056462E.句號 0010111157472F/斜杠 001100006048300數字0 001100016149311數字1 001100106250322數字2 001100116351333數字3 001101006452344數字4 001101016553355數字5 001101106654366數字6 001101116755377數字7 001110007056388數字8 001110017157399數字9 0011101072583A:冒號 0011101173593B;分號 0011110074603C<小于 0011110175613D=等號 0011111076623E>大于 0011111177633F?問號 010000001006440@電子郵件符號 010000011016541A大寫字母A 010000101026642B大寫字母B 010000111036743C大寫字母C 010001001046844D大寫字母D 010001011056945E大寫字母E 010001101067046F大寫字母F 010001111077147G大寫字母G 010010001107248H大寫字母H 010010011117349I大寫字母I 01001010112744AJ大寫字母J 01001011113754BK大寫字母K 01001100114764CL大寫字母L 01001101115774DM大寫字母M 01001110116784EN大寫字母N 01001111117794FO大寫字母O 010100001208050P大寫字母P 010100011218151Q大寫字母Q 010100101228252R大寫字母R 010100111238353S大寫字母S 010101001248454T大寫字母T 010101011258555U大寫字母U 010101101268656V大寫字母V 010101111278757W大寫字母W 010110001308858X大寫字母X 010110011318959Y大寫字母Y 01011010132905AZ大寫字母Z 01011011133915B[開方括號 01011100134925C\反斜杠 01011101135935D]閉方括號 01011110136945E^脫字符 01011111137955F_下劃線 011000001409660`開單引號 011000011419761a小寫字母a 011000101429862b小寫字母b 011000111439963c小寫字母c 0110010014410064d小寫字母d 0110010114510165e小寫字母e 0110011014610266f小寫字母f 0110011114710367g小寫字母g 0110100015010468h小寫字母h 0110100115110569i小寫字母i 011010101521066Aj小寫字母j 011010111531076Bk小寫字母k 011011001541086Cl小寫字母l 011011011551096Dm小寫字母m 011011101561106En小寫字母n 011011111571116Fo小寫字母o 0111000016011270p小寫字母p 0111000116111371q小寫字母q 0111001016211472r小寫字母r 0111001116311573s小寫字母s 0111010016411674t小寫字母t 0111010116511775u小寫字母u 0111011016611876v小寫字母v 0111011116711977w小寫字母w 0111100017012078x小寫字母x 0111100117112179y小寫字母y 011110101721227Az小寫字母z 011110111731237B{開花括號 011111001741247C|垂線 011111011751257D}閉花括號 011111101761267E~波浪號 011111111771277FDEL (delete)刪除?
顯然ASCII碼無法將世界上的各種文字和符號全部表示,所以,就需要新出一種可以代表所有字符和符號的編碼,即:Unicode
Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。Unicode 是為了解決傳統的字符編碼方案的局限而產生的,它為每種語言中的每個字符設定了統一并且唯一的二進制編碼,規定雖有的字符和符號最少由 16 位來表示(2個字節),即:2 **16 =?65536,
注:此處說的的是最少2個字節,可能更多UTF-8,是對Unicode編碼的壓縮和優化,他不再使用最少使用2個字節,而是將所有的字符和符號進行分類:ascii碼中的內容用1個字節保存、歐洲的字符用2個字節保存,東亞的字符用3個字節保存...
所以,python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill),如果是如下代碼的話:
報錯:ascii碼無法表示中文
123#!/usr/bin/env python
?
?print
?"你好,世界"
改正:應該顯示的告訴python解釋器,用什么編碼來執行源代碼,即:
1234#!/usr/bin/env python
# -*- coding: utf-8 -*-
?
?print
?"你好,世界"
?4,注釋。
當行注釋:# 被注釋內容
多行注釋:'''被注釋內容''',或者"""被注釋內容""?
注釋的原則:
①不用全部加注釋,只需要在自己覺得重要或不好理解的部分加注釋即可。 ②注釋可以用中文或英文,但絕對不要用拼音。
5,變量
變量是什么? ?變量:把程序運行的中間結果臨時的存在內存里,以便后續的代碼調用。
5.1、聲明變量
1234#!/usr/bin/env python
# -*- coding: utf-8 -*-
?
?name?
=
?"yefei"
上述代碼聲明了一個變量,變量名為: name,變量name的值為:"yefei"
變量的作用:昵稱,其代指內存里某個地址中保存的內容
5.2、變量定義的規則:
- 變量名只能是 字母、數字或下劃線的任意組合
- 變量名的第一個字符不能是數字
- 以下關鍵字不能聲明為變量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from',
'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield'] - 變量的定義要具有可描述性。
5.3、推薦定義方式
#駝峰體AgeOfYefei = 18NumberOfStudents = 30#下劃線age_of_yefei = 18number_of_students = 30
你覺得哪種更清晰,哪種就是官方推薦的,我想你肯定會先第2種,第一種AgeOfOldboy咋一看以為是AngelaBaby
5.4、變量的賦值
#!/usr/bin/env python # -*- coding: utf-8 -*-name1 = "fanying" name2 = "yefei"
#!/usr/bin/env python # -*- coding: utf-8 -*-name1 = "taibai" name2 = name1
5.5、定義變量不好的方式舉例
- 變量名為中文、拼音
- 變量名過長
- 變量名詞不達意
6,常量
常量即指不變的量,如pai 3.141592653..., 或在程序運行過程中不會改變的量
舉例,假如老男孩老師的年齡會變,那這就是個變量,但在一些情況下,他的年齡不會變了,那就是常量。在Python中沒有一個專門的語法代表常量,程序員約定俗成用變量名全部大寫代表常量
AGE_OF_YEFEI = 18
在c語言中有專門的常量定義語法,
const int count = 60;
一旦定義為常量,更改即會報錯?7,程序交互
#!/usr/bin/env python # -*- coding: utf-8 -*-# 將用戶輸入的內容賦值給 name 變量 name = input("請輸入用戶名:")# 打印輸入的內容 print(name)
執行腳本就會發現,程序會等待你輸入姓名后再往下繼續走。
可以讓用戶輸入多個信息,如下
#!/usr/bin/env python # -*- coding: utf-8 -*-
name = input("What is your name?") age = input("How old are you?") hometown = input("Where is your hometown?")print("Hello ",name , "your are ", age , "years old, you came from",hometown)
8,基礎數據類型(初始)。
什么是數據類型?
我們人類可以很容易的分清數字與字符的區別,但是計算機并不能呀,計算機雖然很強大,但從某種角度上看又很傻,除非你明確的告訴它,1是數字,“漢”是文字,否則它是分不清1和‘漢’的區別的,因此,在每個編程語言里都會有一個叫數據類型的東東,其實就是對常用的各種數據類型進行了明確的劃分,你想讓計算機進行數值運算,你就傳數字給它,你想讓他處理文字,就傳字符串類型給他。Python中常用的數據類型有多種,今天我們暫只講3種, 數字、字符串、布爾類型
8.1、整數類型(int)。
int(整型)
在32位機器上,整數的位數為32位,取值范圍為-2**31~2**31-1,即-2147483648~2147483647
在64位系統上,整數的位數為64位,取值范圍為-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(長整型)
跟C語言不同,Python的長整數沒有指定位寬,即:Python沒有限制長整數數值的大小,但實際上由于機器內存有限,我們使用的長整數數值不可能無限大。
注意,自從Python2.2起,如果整數發生溢出,Python會自動將整數數據轉換為長整數,所以如今在長整數數據后面不加字母L也不會導致嚴重后果了。
注意:在Python3里不再有long類型了,全都是int
>>> a= 2**64 >>> type(a) #type()是查看數據類型的方法 <type 'long'> >>> b = 2**60 >>> type(b) <type 'int'>
除了int和long之外, 其實還有float浮點型, 復數型,但今天先不講啦
8.2、字符串類型(str)。
在Python中,加了引號的字符都被認為是字符串!
>>> name = "Alex Li" #雙引號 >>> age = "22" #只要加引號就是字符串 >>> age2 = 22 #int >>> >>> msg = '''My name is taibai, I am 22 years old!''' #我擦,3個引號也可以 >>> >>> hometown = 'ShanDong' #單引號也可以
那單引號、雙引號、多引號有什么區別呢? 讓我大聲告訴你,單雙引號木有任何區別,只有下面這種情況 你需要考慮單雙的配合
msg = "My name is Alex , I'm 22 years old!"
多引號什么作用呢?作用就是多行字符串必須用多引號
msg = ''' 今天我想寫首小詩, 歌頌我的同桌, 你看他那烏黑的短發, 好像一只炸毛雞。 ''' print(msg)
字符串拼接
數字可以進行加減乘除等運算,字符串呢?讓我大聲告訴你,也能?what ?是的,但只能進行"相加"和"相乘"運算。
>>> name 'Alex Li' >>> age '22' >>> >>> name + age #相加其實就是簡單拼接 'Alex Li22' >>> >>> name * 10 #相乘其實就是復制自己多少次,再拼接在一起 'Alex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex Li'
注意,字符串的拼接只能是雙方都是字符串,不能跟數字或其它類型拼接
>>> type(name),type(age2) (<type 'str'>, <type 'int'>) >>> >>> name 'Alex Li' >>> age2 22 >>> name + age2 Traceback (most recent call last):File "<stdin>", line 1, in <module> TypeError: cannot concatenate 'str' and 'int' objects #錯誤提示數字 和 字符 不能拼接
8.3、布爾值(True,False)。
布爾類型很簡單,就兩個值 ,一個True(真),一個False(假), 主要用記邏輯判斷
但其實你們并不明白對么? let me explain, 我現在有2個值 , a=3, b=5 , 我說a>b你說成立么? 我們當然知道不成立,但問題是計算機怎么去描述這成不成立呢?或者說a< b是成立,計算機怎么描述這是成立呢?
沒錯,答案就是,用布爾類型
>>> a=3 >>> b=5 >>> >>> a > b #不成立就是False,即假 False >>> >>> a < b #成立就是True, 即真 True
9,格式化輸出。
現有一練習需求,問用戶的姓名、年齡、工作、愛好 ,然后打印成以下格式
------------ info of Yefei ----------- Name : Yefei Age : 18 job : Farmer Hobbie: Watching TV ------------- end -----------------
你怎么實現呢?你會發現,用字符拼接的方式還難實現這種格式的輸出,所以一起來學一下新姿勢
只需要把要打印的格式先準備好, 由于里面的 一些信息是需要用戶輸入的,你沒辦法預設知道,因此可以先放置個占位符,再把字符串里的占位符與外部的變量做個映射關系就好啦
name = input("Name:") age = input("Age:") job = input("Job:") hobbie = input("Hobbie:")info = ''' ------------ info of %s ----------- #這里的每個%s就是一個占位符,本行的代表 后面拓號里的 name Name : %s #代表 name Age : %s #代表 age job : %s #代表 job Hobbie: %s #代表 hobbie ------------- end ----------------- ''' %(name,name,age,job,hobbie) # 這行的 % 號就是 把前面的字符串 與拓號 后面的 變量 關聯起來 print(info)
%s就是代表字符串占位符,除此之外,還有%d,是數字占位符, 如果把上面的age后面的換成%d,就代表你必須只能輸入數字啦
age : %d
我們運行一下,但是發現出錯了。。。
說%d需要一個數字,而不是str, what? 我們明明輸入的是數字呀,22,22呀。
不用擔心 ,不要相信你的眼睛我們調試一下,看看輸入的到底是不是數字呢?怎么看呢?查看數據類型的方法是什么來著?type()
name = input("Name:") age = input("Age:") print(type(age))
執行輸出是
Name:Yefei Age:18 <class 'str'> #怎么會是str Job:Farmer
讓我大聲告訴你,input接收的所有輸入默認都是字符串格式!
要想程序不出錯,那怎么辦呢?簡單,你可以把str轉成int
age = int( input("Age:") ) print(type(age))
肯定沒問題了。相反,能不能把字符串轉成數字呢?必然可以,
str( yourStr )
問題:現在有這么行代碼
msg = "我是%s,年齡%d,目前學習進度為80%"%('yefei',18) print(msg)
這樣會報錯的,因為在格式化輸出里,你出現%默認為就是占位符的%,但是我想在上面一條語句中最后的80%就是表示80%而不是占位符,怎么辦?
msg = "我是%s,年齡%d,目前學習進度為80%%"%('yefei',18) print(msg)
這樣就可以了,第一個%是對第二個%的轉譯,告訴Python解釋器這只是一個單純的%,而不是占位符。
?
?
?
?