首頁 > 軟體

Python的基本語法詳解

2022-05-27 18:02:51

一、Python輸出

print是python輸出的關鍵字,預設是輸出內容後換行。

如果不想換行,需要在變數末尾加上 end="" 。

a = 'hello'
b = 'world'
print(a)
print(b)
print(a, end=" " )
print(b, end=" " )
print(a, b)

輸出資訊:

C:PycharmProjectsuntitledvenvScriptspython.exe C:/PycharmProjects/untitled/test.py
hello
world
hello world

多個變數輸出之間加上逗號(,),預設為空格分隔符,如:

print(x, y)
print(x, y, sep="-")

1、repr() 或 str() 轉成字串

如果你希望將輸出的值轉成字串,可以使用 repr() 或 str() 函數來實現。

  • str(): 函數返回一個使用者易讀的表達形式。
  • repr(): 產生一個直譯器易讀的表達形式。
s = 'Hello, Runoob'
print(s)
# Hello, Runoob

print(repr(s))
# 'Hello, Runoob'

#  repr() 函數可以跳脫字串中的特殊字元
hello = 'hello, runoobn'
hellos = repr(hello)
print(hellos)
# 'hello, runoobn'

# repr() 的引數可以是 Python 的任何物件
print(repr((32.5, 40000, ('Google', 'Runoob'))))
# (32.5, 40000, ('Google', 'Runoob'))

2、字串填充空格進行格式化

字串物件的 rjust() 方法, 它可以將字串靠右, 並在左邊填充空格。

還有類似的方法, 如 ljust() 和 center()。 這些方法並不會寫任何東西, 它們僅僅返回新的字串。

另一個方法 zfill(), 它會在數位的左邊填充 0。

有兩種方式輸出一個平方與立方的表:

for x in range(1, 11):
    print(repr(x).rjust(2), repr(x * x).rjust(3), end=' ') # 注意前一行 'end' 的使用
    print(repr(x * x * x).rjust(4))

#  1   1    1
#  2   4    8
#  3   9   27
#  4  16   64
#  5  25  125
#  6  36  216
#  7  49  343
#  8  64  512
#  9  81  729
# 10 100 1000

for x in range(1, 11):
    print('{0:2d} {1:3d} {2:4d}'.format(x, x * x, x * x * x))

#  1   1    1
#  2   4    8
#  3   9   27
#  4  16   64
#  5  25  125
#  6  36  216
#  7  49  343
#  8  64  512
#  9  81  729
# 10 100 1000

3、!a (使用 ascii()), !s (使用 str()) 和 !r (使用 repr()) 可以用於在格式化某個值之前對其進行轉化

import math
print('使用 ascii(): {!a}'.format('哈哈啊W2'))
# 使用 ascii(): 'u54c8u54c8u554aW2'。

print('常數 PI 的值近似為: {!r}。'.format(math.pi))
# 常數 PI 的值近似為: 3.141592653589793。

二、Python識別符號

在 Python 裡,識別符號可由字母、數位、下劃線組合而成(但不能以數位開頭),且識別符號是區分字母大小寫的,比如hello和Hello會被系統認為是兩個識別符號。

以下劃線開頭的識別符號是有特殊意義的。

  • 單下劃線開頭,如 _abc, 代表不能直接存取的類屬性,需通過類提供的介面進行存取,不能用" from xxx import * "匯入
  • 雙下劃線開頭,如 __abc, 代表類的私有成員
  • 開頭和結尾都有雙下劃線,如 __abc__ , 代表 Python 裡特殊方法專用的標識,如 __init__() 代表類別建構函式

三、Python保留字元(關鍵字)

所有”保留字元“,也就是已經被Python系統徵用的識別符號,俗稱“key word(關鍵字)”,這些保留字元不能用作常數或變數,以及任何識別符號名稱。

以下是Python保留字元表:

  • and、exec、not、assert、finally、or、break、for、pass、class、from、print、continue、global、raise、def、
  • if、return、del、import、try、elif、in、while、else、is、with、except、lambda、yield

四、Python模組寫法

與其他語言最大的不同在於,Python不使用大括號( { } )來描述類、函數以及其他邏輯判斷,而是採用縮排的方式來寫模組。

而縮排的空白數量是可變的,如果你想確保程式碼塊能正確執行,那必須確保程式碼塊中的語句都是一樣的縮排數量。舉例:

if True:
   print ("True")   #此處縮排了2個空白數
else:
   print ("False")  #此處縮排了2個空白數

如果是下面的寫法,則會報錯,因為最後的print只縮排了2個空白數,沒有與程式碼塊中的對齊:

if True:
     print ("Answer")
     print ("True")
else:
     print ("Answer")
     # 沒有嚴格縮排,在執行時會報錯
   print ("False")

報錯資訊:

File "D:/PythonProject/hello.py", line 7 
print ("False") 

IndentationError: unindent does not match any outer indentation level 

因此,建議你使用 單個製表符 或 兩個空格 或 四個空格 來對程式碼進行縮排,切勿混用。

五、Python引號

python中單引號和雙引號使用完全相同。

python支援用單引號(' ')、雙引號( " " )、三個雙引號( """ """ )或三個單引號( ''' ''' ),都可以表示字串,引號的開始與結束必須相同型別和數量。

1、多行字串

注意:使用三引號('''或""")可以指定一個多行字串。可以由多行組成,為編寫多行文字的快捷語法,常用於檔案字串。

在檔案的特定地點,被當做註釋。(見註釋講解)

a = """這是一個三引號。
包含了三個雙引號。"""
print(a)

輸出結果:

D:/PythonProject/hello.py 
這是一個三引號。 
包含了三個雙引號。

2、跳脫符 ''

反斜槓可以用來跳脫,使用r可以讓反斜槓不發生跳脫。。 如 r"this is a line with n" 則n會顯示,並不是換行。這裡的 r 指 raw,即 raw string

六、Python註釋

註釋是指用來在程式碼中進行標註的資訊,是不會被系統處理或顯示的。Python的註釋有2種方式:

1、單行註釋#

在一段程式碼或描述前加上井號(#) ,如:

a = 1+1 #我是一段註釋
print(a)

輸出結果:

D:/PythonProject/hello.py 
2

2、多行註釋’’’

用三引號(""" """)或(''' ''')來對多行程式碼或描述進行註釋,如:

a = 1+1
'''我是多行註釋
這是第二行
這是第三行'''
print(a)

輸出結果:

D:/PythonProject/hello.py 
2

七、Python空行

與其他語言不同的還有,python採用空一行的方式,來表示多個函數、多個方法、或類和函數的入口。

空行的作用在於區分兩段不同功能或定義的程式碼,便於日後程式碼的維護。

因此:空行也是程式程式碼的一部分。

八、Python使用者輸入

下面的程式碼執行後就會等待使用者輸入,如按確認鍵後,執行就會結束:

input
("按下 enter 鍵退出,其他任意鍵顯示...n")

九、Python一行多段程式碼

如果想在同一行中編寫多段程式碼,可以使用分號(;)來表示,如下:

x = 'abc'; print(x)

輸出結果:

D:/PythonProject/hello.py 
abc 

Python可以用分號“;”在同一行編寫多條語句,執行後會當作多行輸出,如:

>>> print ('hello');
  
print ('world');
hello
runoob

十、多行語句

Python 通常是一行寫完一條語句,但如果語句很長,我們可以使用反斜槓()來實現多行語句,例如:

total = item_one + 
        item_two + 
        item_three

在 [], {}, 或 () 中的多行語句,不需要使用反斜槓(),例如:

total = ['item_one', 'item_two', 'item_three', 'item_four', 'item_five']

十一、三元表示式

語法:條件成立時的返回值 if 條件 else 條件不成立時的返回值

x = 10
y = 20

print(x if x > y else y)  # 20

十二、Python程式碼組

縮排相同的一組語句構成一個程式碼塊,我們稱之程式碼組。

像if、while、def等這樣的複合語句,首行以關鍵字開始,以冒號( : )結束,該行之後的一行或多行程式碼構成程式碼組,如:

if a: 
    xxxxx 
elif b:  
    xxxxx  
else :  
    xxxxx

十三、import 與 from...import

在 python 用 import 或者 from...import 來匯入相應的模組。

  • 將整個模組(somemodule)匯入,格式為: import somemodule
  • 從某個模組中匯入某個函數,格式為: from somemodule import somefunction
  • 從某個模組中匯入多個函數,格式為: from somemodule import firstfunc, secondfunc, thirdfunc
  • 將某個模組中的全部函數匯入,格式為: from somemodule import *

匯入 sys 模組:

import sys
print('================Python import mode==========================')
print ('命令列引數為:')
for i in sys.argv:
    print (i)
print ('n python 路徑為',sys.path)

匯入 sys 模組的 argv,path 成員:

from sys import argv,path  #  匯入特定的成員
 
print('================python from import===================================')
print('path:',path) # 因為已經匯入path成員,所以此處參照時不需要加sys.path

十四、Python 偵錯方法

1、print

print('here')
# 可以發現某段邏輯是否執行
# 列印出變數的內容

2、assert

assert false, 'blabla'
# 如果條件不成立,則列印出 'blabla' 並丟擲AssertionError異常

3、debugger

可以通過 pdb、IDE 等工具進行偵錯。

偵錯的具體方法這裡不展開。

Python 中有兩個內建方法在這裡也很有幫助:

  • locals: 執行 locals() 之後, 返回一個字典, 包含(current scope)當前範圍下的區域性變數。
  • globals: 執行 globals() 之後, 返回一個字典, 包含(current scope)當前範圍下的全域性變數。

到此這篇關於Python基本語法的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com