程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python基礎語法(注釋、關鍵字、輸入輸出)

編輯:Python

Python基礎語法學習

3.1 編寫第一個Python程序

任何一種編程語言都有自己的一套語法,編譯器或者解釋器負責把符合語法的程序代碼轉換成CPU能夠執行的機器碼然後執行,Python也不例外,也有自己的語法規則和解析器。

Python程序是大小寫敏感的,如果寫錯了大小寫,程序會報錯。

python最具特色的就是使用縮進來表示代碼塊,不需要使用大括號 {}

縮進的空格數是可變的,但是同一個代碼塊的語句必須包含相同的縮進空格數, 縮進的空格數不一致,會導致運行錯誤。

一份Python代碼示例:

#!/usr/bin/python3

print("hello Python");

if True:

    print ("True")

else:

    print ("False")

縮進的空格數不一致,下面的代碼運行會報錯:

#!/usr/bin/python3

print("hello Python");

if True:

    print ("True")

else:

print ("False") #此處代碼塊沒有與上面的代碼塊對齊

/*

運行報錯提示:

PS C:\Users\11266> & C:/Users/11266/AppData/Local/Programs/Python/Python38-32/python.exe d:/linux-share-dir/Python/python_code.py

File "d:/linux-share-dir/Python/python_code.py", line 7

print ("False")

^

IndentationError: expected an indented block

*/


3.2 Python中單行與多行注釋語法

確保對模塊, 函數, 方法和行內注釋使用正確的風格

Python中的注釋有單行注釋和多行注釋。

Python中單行注釋以#開頭,例如:

#這是一個注釋

print("hello world!")


多行注釋用三個單引號 ''' 或者三個雙引號 """ 將注釋括起來,例如:

1、單引號(''')

#!/usr/bin/python3 

'''

這是多行注釋,用三個單引號

這是多行注釋,用三個單引號 

這是多行注釋,用三個單引號

'''

print("Hello, World!")


2、雙引號(""")

#!/usr/bin/python3 

"""

這是多行注釋,用三個雙引號

這是多行注釋,用三個雙引號 

這是多行注釋,用三個雙引號

"""

print("Hello, World!")


3.3 python輸出功能基本語法:print()

print(' '),print(" "): 在引號內加入指定字符串,即可輸出指定文字。

區別只是單引號內特定字符需要使用轉義字符"\",而雙引號則不需要。

當然,雙引號中包含雙引號需要用轉義字符,單引號中則不需要。

例如: print('hello world!'),運行後輸出的便是hello world!

示例:

#!/usr/bin/python3

print("hello world!")

print('hello world!')

print('hello \'world!\'')

print("hello 'world!'")

print("hello \"world!\"")

輸出結果:

hello world!

hello world!

hello 'world!'

hello 'world!'

hello "world!"


print函數也可以接受多個字符串,用逗號“,”隔開,就可以連成一串輸出。

使用逗號的地方輸出後會變成空格。

示例:

#!/usr/bin/python3

print("歡迎","學習","Python編程")

print('歡迎','學習','Python編程')

輸出結果:

歡迎學習 Python編程

歡迎學習 Python編程

print也可以打印整數,計算結果。

print(2019),print(100+200)

輸出結果:

2019

300

print也可以進行多行輸出。(三重單引號或三重雙引號''',""")

#!/usr/bin/python3

print('''歡迎

學習

Python

編程''')

print("""歡迎

學習

Python

編程""")


輸出結果:

歡迎

學習

Python

編程

歡迎

學習

Python

編程


print()也可以打印整數或者計算結果:

示例:

#!/usr/bin/python3

print(200+300)

print("200+300=",200+300)

print("100*2=",100*2)

print("(10+2)*4-10=",(10+2)*4-10)

輸出結果:

500

200+300= 500

100*2= 200

(10+2)*4-10= 38


print 默認輸出是換行的,如果要實現不換行需要在變量末尾加上 end=""

示例:

#!/usr/bin/python3

print("hello ")

print("world")


print("hello ",end="")

print("world")


輸出結果:

hello

world

hello world


3.4 python輸入功能基本語法:input()

Python提供了input()內置函數從標准輸入讀入一行文本,默認的標准輸入是鍵盤。

input 可以接收一個Python表達式作為輸入,並將運算結果返回。

示例:

#!/usr/bin/python3

str = input("請輸入:")

print ("你輸入的內容是: ", str)

輸出結果:

請輸入:歡迎學習python編程

你輸入的內容是: 歡迎學習python編程

當運行代碼並按下回車後,Python交互式命令行就在等待你的輸入了。這時,你可以輸入任意字符,然後按回車後完成輸入。

輸入完成後,剛才輸入的內容就存放到str 變量裡了。


input()函數還支持顯示一個字符串來提示用戶,這樣,用戶就可以根據提示輸入指定的內容:

示例:

#!/usr/bin/python3

name = input("請輸入你的名字:")

print ("你的名字是:", name)

輸出結果:

請輸入你的名字:Python

你的名字是: Python


在python3.0以後的版本中,input接收的是字符串;input()對輸入的數據都是按照字符串方式處理,如果想要得到其他類型的數據,需要對類型做轉換:

示例:

#!/usr/bin/python3

my_float = float(input('請輸入一個浮點數:'))

my_int = int(input('請輸入一個整數:'))

my_str = input('請輸入一個字符串:')

3.5 Python標識符與關鍵字

標識符(變量的名字)是電腦語言中允許作為名字的有效字符串集合。其中,有一部分是關鍵字,構成語言的標識符;這樣的標識符是不能做它用的標識符的,否則會引起語法錯誤。

標識符的定義規則:

(1) 第一個字符必須是字母表中字母或下劃線 _

注意: 下劃線對解釋器有特殊的意義, 對於普通的變量應當避免下劃線開頭的命名風格。

(2) 標識符的其他的部分由字母、數字和下劃線組成

(3) 標識符對大小寫敏感。

(4) 在Python 3 中,可以用中文作為變量名,非 ASCII 標識符也是允許。

(5) Python的關鍵字不能當做標識符


任何語言的關鍵字應該保持相對的穩定,但是因為 Python 是一門不斷成長和進化的語言,Python 的標准庫提供了一個 keyword 模塊,可以輸出當前版本的所有關鍵字:

#!/usr/bin/python3

import keyword

print(keyword.kwlist)


輸出結果如下:

['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']


示例代碼:

#!/usr/bin/python3

str="hello world"

data=6666

變量="中國"    #使用中文當做變量名稱

print("str=",str) 

print("data=",data)

print("變量=",變量)


輸出的結果:

str= hello world

data= 6666

變量= 中國

3.6 Python代碼縮進規則

和其它程序設計語言(如 Java、C 語言)采用大括號“{}”分隔代碼塊不同,Python 采用代碼縮進和冒號( : )來區分代碼塊之間的層次。

在 Python 中,對於類定義、函數定義、流程控制語句、異常處理語句等,行尾的冒號和下一行的縮進,表示下一個代碼塊的開始,而縮進的結束則表示此代碼塊的結束。

Python 中實現對代碼的縮進,可以使用空格或者 Tab 鍵實現。但無論是手動敲空格,還是使用 Tab 鍵,通常情況下都是采用 4 個空格長度作為一個縮進量(默認情況下,一個 Tab 鍵就表示 4 個空格)。

示例代碼:

#!/usr/bin/python3

if 123>456:   #以冒號表示if語句的代碼塊

    print("123>456")    #print代碼需要縮進,不能與if語句一樣對齊頂格,否則會報錯

else:   #以冒號表示else語句的代碼塊

    print("123<456")    #print代碼需要縮進

圖3-6-1

3.7 文本編碼

因為目前的計算機CPU只能處理數字,要處理文本,就需要把文本轉換為數字才能處理。

最早的計算機在設計時采用8個比特(bit)作為一個字節(byte),一個字節能表示的最大的整數就是255(二進制11111111=十進制255),如果要表示更大的整數,就必須用更多的字節。

比如:兩個字節可以表示的最大整數是65535,4個字節可以表示的最大整數是4294967295。

由於計算機是美國人發明的,最早只有127個字符被編碼到計算機裡,包含大小寫英文字母、數字和一些符號,這個編碼表被稱為ASCII編碼,比如大寫字母A的編碼是65,小寫字母z的編碼是122。

但是要處理中文顯然一個字節是不夠的,至少需要兩個字節,而且還不能和ASCII編碼沖突,所以,中國制定了GB2312編碼,用來把中文編進去。

可以想得到的是,全世界有上百種語言,日本把日文編到Shift_JIS裡,韓國把韓文編到Euc-kr裡,各國有各國的標准,就會不可避免地出現沖突,結果就是,在多語言混合的文本中,顯示出來會有亂碼。

因此,就誕生了Unicode編碼。Unicode把所有語言都統一到一套編碼裡,這樣就不會再有亂碼問題了。

Unicode標准也在不斷發展,但最常用的是用兩個字節表示一個字符(如果要用到非常偏僻的字符,就需要4個字節)。現代操作系統和大多數編程語言都直接支持Unicode。

ASCII編碼和Unicode編碼的區別:ASCII編碼是1個字節,而Unicode編碼通常是2個字節。

字母A用ASCII編碼是十進制的65,二進制的01000001;

字符0用ASCII編碼是十進制的48,二進制的00110000,注意字符'0'和整數0是不同的;

漢字中已經超出了ASCII編碼的范圍,用Unicode編碼是十進制的20013,二進制的01001110 00101101。

如果把ASCII編碼的A用Unicode編碼,只需要在前面補0就可以,因此,A的Unicode編碼是00000000 01000001。

如果我們把所有文本編碼都統一成Unicode編碼,亂碼問題就消失了;但是,如果你寫的文本基本上全部是英文的話,用Unicode編碼比ASCII編碼需要多一倍的存儲空間,在存儲和傳輸上就十分不劃算。

所以,又出現了把Unicode編碼轉化為“可變長編碼”的UTF-8編碼。

UTF-8編碼把一個Unicode字符根據不同的數字大小編碼成1-6個字節,常用的英文字母被編碼成1個字節,漢字通常是3個字節,只有很生僻的字符才會被編碼成4-6個字節。如果要傳輸的文本包含大量英文字符,用UTF-8編碼就能節省空間。

字符

ASCII

Unicode

UTF-8

A

01000001

00000000 01000001

01000001

x

01001110 00101101

11100100 10111000 10101101

從上面的表格可以發現, ASCII編碼實際上可以被看成是UTF-8編碼的一部分,所以,大量只支持ASCII編碼的歷史遺留軟件可以在UTF-8編碼下繼續工作。

目前在計算機內存中,統一使用Unicode編碼,當需要保存到硬盤或者需要傳輸的時候,就轉換為UTF-8編碼。

用記事本編輯的時候,從文件讀取的UTF-8字符被轉換為Unicode字符到內存裡,編輯完成後,保存的時候再把Unicode轉換為UTF-8保存到文件。

浏覽網頁的時候,服務器會把動態生成的Unicode內容轉換為UTF-8再傳輸到浏覽器。

默認情況下,Python 3源碼文件都是以 UTF-8 編碼,所有字符串都是 unicode 字符串。

圖3-7-1

代碼裡也可以為源碼文件指定不同的編碼。

比如:定義允許在源文件中使用 Windows-1252 字符集中的字符編碼,對應適合語言為保加利亞語、白羅斯語、馬其頓語、俄語、塞爾維亞語。

# -*- coding: cp-1252 -*-


定義源代碼使用UTF-8編碼:

#!/usr/bin/python3

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

if 123>456:   #以冒號表示if語句的代碼塊

    print("123大於456")    #print代碼需要縮進,不能與if語句一樣對齊頂格,否則會報錯

    print("hello world")

else:   #以冒號表示else語句的代碼塊

    print("123小於456")    #print代碼需要縮進

第一行注釋是為了告訴Linux/OS X系統,這是一個Python可執行程序,Windows系統會忽略這個注釋。

第二行注釋是為了告訴Python解釋器,按照UTF-8編碼讀取源代碼,否則,你在源代碼中寫的中文輸出可能會有亂碼。

聲明了UTF-8編碼並不意味著你的.py文件就是UTF-8編碼的,必須並且要確保文本編輯器正在使用UTF-8編碼。




  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved