第二篇:Python基本知識


 

    這一篇我們簡單的介紹一下Python學習的基本知識--》Python文件是如何運行、Python文件打開通常會有兩行注釋,那么這兩行注釋是什么;上篇提到的字節碼,這些字節碼都存儲在哪?即pyc文件;還有基本知識-->變量、input、if條件語句、while循環語句、for循環等

一、運行:

  在D:\python_test\ 目錄下創建hello.py文件,其內容如下:

1 #! /user/bin/local/ python
2 # -*- coding:utf-8 -*-
3 
4 print("hello world")

  在Windows下運行Python文件,通常有兩種方式:

    一、打開終端---> C:\Program Files\Python36\python3.exe  D:\python_test\hello.py,即輸入Python3的運行路徑+文件路徑,即可運行python文件。

    二、運行Python解釋器 -->即打開C:\Program Files\Python36\python.exe執行python文件。

  而在Python內部執行過程如下圖:

 


 

二、文件行

   當我們打開Python文件時,通常會在文件的頭部會有 #!/user/bin/local python,例:

#! /user/bin/local python

print(" hello world")

   這意味着在Linux下執行時,打開文件時先讀取首行,並通過其找到python解釋器的路徑,以此來執行該文件。若直接在Linux終端輸入 :

>>> python hello.py

則加不加該句則無所謂。

   而針對使用以下方法打開python文件時,這時候寫上Python解釋器執行路徑是非常有必要的:

>>> ./hello.py

即直接執行該文件,但打開是需注意文件的權限,若其他用戶無法打開該文件,通過該命令--> chmod o+x hello.py來修改文件執行。

 


 

 三、編碼

   當我們打開python文件,除了會寫明python解釋器的執行路徑,還通常會表明讀取該文件是以何種編碼執行:

# -*- coding:utf-8 -*-

print("hello world")

即表明該文件以utf-8的編碼方式進行編碼的,而在Python2中,默認是以ASCII碼的編碼方式進行編碼的,故需加上這句來告訴Python解釋器是以utf-8的編碼方式進行編碼的。

而在Python3中,文件的編碼方式默認為utf-8編碼方式。故加不加這句都無所謂。

 

 常見的編碼方式有以下幾種:

    ASCII碼:ASCII(American Standard Code for Information Interchange,美國標准信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言,其最多只能用 8 位來表示(一個字節),即:2**8 = 256,所以,ASCII碼最多只能表示 256 個符號。

    以下為ASCII碼表:

  需要注意的是:大寫的英文字母即 A~Z--->二進制轉十進制后為 65~90。

         小寫的英文字母即 a~z--->二進制轉十進制后為 97~122.

    GBK編碼 -->GBK編碼為GB2312編碼的擴展,GBK全名為漢字內碼擴展規范,英文名Chinese Internal Code Specification。K 即是“擴展”所對應的漢語拼音(KuoZhan)中“擴”字的聲母。

  它規定一個中文為兩個字節。

    Unicode編碼-->Unicode-->萬國碼,即當許多國家開始使用計算機,無論是中國的GBK還是日本的JIS等都無法同時進行編碼,容易出現亂碼等問題,例如想用八國語言

  來寫一篇文章,這樣無論是GBK還是JIS都無法實現,故發明了Unicode,它包含了各種國家的編碼方式,它規定一個字符用兩個或者兩個以上的字節來表示。

    utf-8編碼-->它是Unicode編碼的壓縮和優化,由於Unicode規定一個字符用兩個或者兩個以上的字節表示,故以前美國人使用ASCII碼的時候,一個英文用一個字節來表示,因此浪費了許多內存空間,故由此便

出現了utf-8,它規定一個英文用一個字節表示,一個中文用三個字節表示。

    等等。。


 

四、注釋

   當行注釋---> #

   多行注釋 --> ''' ''' 或者 """ """,注也可使用多行注釋來代表多行字符串。例如

#這是當行注釋

''' 這代表多行注釋 第一句python代碼---》hello world
''' info =''' name ='Little_five' age ='22' ''

 


 

五、 pyc 文件

  執行Python代碼時,如果導入了其他的 .py 文件,那么,執行過程中會自動生成一個與其同名的 .pyc 文件,該文件就是Python解釋器編譯之后產生的字節碼。

  記得我們上篇介紹C語言和Python、以及Java的區別時提到:

     C語言為編譯型語言--》代碼編譯得到機器碼,機器碼在CPU上直接執行。

     Python為編譯型還是解釋型並不明確,姑且為解釋型。---》代碼編譯得到字節碼,再通過虛擬機執行字節碼轉換成機器碼,最后由CPU執行。

      而這里所說的字節碼便便被存儲在pyc文件內。

   ps:代碼經過編譯可以產生字節碼;字節碼通過反編譯也可以得到代碼。

 


 

六、變量

  聲明變量:變量即為值可以變化的量,由於值存儲在內存中,故需要取出該值則需要一個指針,指向該內存地址能夠取出該內存中的值,而這個指針就是變量名。

1 #! /user/bin/local python
2 #-*- coding:utf-8 -*-
3 
4 name = 'Little-five 

  上述代碼聲明了一個變量,變量名為: name,變量name的值為:"Little-five"

  變量的作用:昵稱,其代指內存里某個地址中保存的內容

  

    聲明變量名的規則:

      1、變量只能使用數字、字母、下划線‘_’

      2、數字不能作為變量名的開頭

      3、以下關鍵字不能聲明為變量名
    ['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'

      4、同時需注意的是盡量不使用常用的類名、模塊名等作為變量名

#!/usr/bin/local python # -*- coding: utf-8 -*-
 name ="little_five" _name ='xiaowu'

 


 

七、輸入

  input--->將用戶輸入的值變為字符串,並且可以將其賦值給某個變量名。例如:

#!/usr/bin/env python # -*- coding: utf-8 -*-
 name = input("please enter your name--->:") print(name)

 


 

八、if條件語句:

  1、if ...else...

    假設我們要創建一個簡單的用戶登入操作,可以讓用戶輸入用戶名和密碼,若用戶名和密碼都正常,則登入成功,否則,登入失敗。

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3  
 4  username ='little-five'
 5  password ='12345'
 6 #讓用戶輸入用戶名和密碼
 7 user = input("pelase enter your username -->:")  8 passwd = input("please enter your password-->")  9 #如用戶名和密碼正確
10 if username ==user and password == passwd: #條件成立
11     print("welcome...") 12 else:  #條件不成立
13     print("sorry,error username or password")

    即 if 條件成立,執行 if 內的命令;否則條件不成立,則執行else內的命令。

  2、if ... elif ...elif...else..

    假設我們創建一個門票收取機制,即年齡小於5五歲的兒童免費和年齡大於60歲的老人可以打折,而其他的正常票價。如:

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 
 4 age = input("enter your age-->:")  5 
 6 if age<5:  7     price =0  8 elif age <18:  9     price =5
10 elif age <60: 11     price =10
12 else: 13     price =5
14 print("You admission cost is -->",price)

   即 當出現並非兩種情形是,if ..else..無法解決問題。故對於這種多種情況時我們可以使用 if ..elif .. eilf ......else..來應對。

   當然if的用法不止這兩種,還可以if ..if ...、if...elif...elif..等等這些,但是最終用法都與上述兩種類似,就不一一列舉了。

 


 

九、while循環

  一、while循環的用法:

    例如計算1-5的平法,可以使用while 循環:

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 
 4 count =1 
 5 #當條件成立時則執行while下的循環體
 6 while count <6:  7     res = count**2
 8     count +=1
 9     print (res) 10 #當條件不成立時,則執行else下的命令行
11 else: 12     print("count <1 or count >5")

  二、break --> 終止該循環的所有循環,即跳出該循環去執行循環外的下一條命令

    例如,我們需要讓用戶輸入並打印用戶輸入的信息,當用戶輸入q可退出:

 1 #!/usr/bin/env python  2 # -*- coding: utf-8 -*-
 3 
 4 message =''
 5 while True:  6  #讓用戶不停的輸入要發送的信息,直到輸入q退出  7     mes = input("please input what you want tosend ,enter "q" to end the program."
 8     if mes =="q":  9     break #終止該循環 10     message += mes 11 print(message)

 

  三、continue -->終止該循環的當前循環,即跳出本次循環去執行下一次循環,跳至下一次循環的while判斷

    例如:我們需要打印1--9,除了7,這樣我們就可以使用到continue了:

 1 #!/usr/bin/env python  2 # -*- coding: utf-8 -*-
 3 
 4 count = 1
 5 while count <= 10:  6  #當count等於7的時候,跳出本次循環。即循環內continue以下的命令都不執行  7     if count == 7:  8         continue
 9  print(count) 10     count += 1

 


 

十、for循環

  for循環--->通常可以用來遍歷各種可迭代對象,例如:字符串str、列表list、元組tuple、字典dict等等

#!/usr/bin/env python
# -*- coding: utf-8 -*-

name =["James",Mike","liudehua","gutianle"
for item in name:
    print(item

  當然,for循環還可以用於匿名函數,這里不再介紹。

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM