您好,登錄后才能下訂單哦!
我們在文言文中經常會看到注釋,注釋可以幫助讀者對文章的理解。代碼中的注釋也是一樣,優秀的代碼注釋可以幫助讀者對代碼的理解。當然在代碼編寫過程中,注釋的使用不一定只是描述一段代碼,也可能的是對代碼的調試。
Python注釋一共有# 、''' ''' 、""" """三種方式。我們在編寫代碼中,一般用#進行單行注釋,''' '''或""" """進行多行注釋。如下代碼所示:
# 這是一段注釋
'''
這是多行注釋,使用英文單引號。
這是多行注釋,使用英文單引號。
這是多行注釋,使用英文單引號。
'''
"""
這是多行注釋,使用英文雙引號。
這是多行注釋,使用英文雙引號。
這是多行注釋,使用英文雙引號。
"""
# 單行注釋 這是一個加法
def add(a, b):
return a + b
# 先把print(add(1, 2))注釋掉,下次如果用到print(add(1, 2))把#去掉
# print(add(1, 2))
我們右擊運行,發現不會輸出任何內容,雖然我們定義了一個add函數,但是并沒有調用add函數,當我們把# print(add(1, 2))的#去掉時,再右擊運行,打印臺會輸出3。關于函數的使用,會在后面內容進行介紹。
變量的概念和數學方程式變量是一致的。比如一元一次方程 x+1>5 ,x就是一個變量。
在計算機程序中,變量不僅可以是數字,還可以是任意數據類型。變量在程序中用一個變量名表示,變量名必須是大小寫英文、數字和_的組合,且不能用數字開頭,不能使用關鍵字作為變量。如下代碼所示:
a = [1, 'test', '你好', 1 + 2, False, [2, 3, 'CHINA']]
A = 1.1
b = '1'
B = 'test'
c = True
_C = False
d1 = 'test'
name = {'testDog', 'Jim', 'Mary', 'Jim', 'Jack', 'Rose'}
Python中關鍵字如下所示: and |
Exec | not |
---|---|---|
assert | Finally | or |
break | For | pass |
class | From | |
continue | Global | raise |
def | If | return |
del | Import | try |
elif | In | while |
else | Is | with |
except | lambda | yield |
一般當我們定義一個函數、使用if…else、while等時,第二行都必需要進行縮進。使用四個空格或鍵盤上的tab鍵表示縮進。如下代碼所示:
def add(a, b):
return a + b
if 0 < 1:
print("True")
如果我們縮進位置不對時,運行下面這段代碼一般會報IndentationError: expected an indented block錯誤。如下代碼所示:
def add(a, b):
return a + b
print(add(1, 2))
input意思是等待用戶輸入,print我們之前也已經用過,表示打印的意思。我們運行下面這段代碼,會發現Pycharm打印臺需要我們輸入2個數,當我們輸入第一個數字時,按下Enter,會讓我們輸入第二個數,輸完第二個數,按Enter,程序運行結束。當然下面這段代碼是有Bug的,猜猜Bug在哪里呢?如下代碼所示:
a = input("請輸入第一個數:")
b = input("請輸入第二個數:")
print("輸入的2個數和為:", (a + b)
上面代碼將輸出如下內容:
請輸入第一個數:1
請輸入第二個數:2
輸入的2個數和為:3
python 用 import 或者 from...import 來導入相應的模塊。
將整個模塊(somemodule)導入,格式為: import somemodule
從某個模塊中導入某個函數,格式為: from somemodule import somefunction
從某個模塊中導入多個函數,格式為:from somemodule import firstfunc, secondfunc, thirdfunc
將某個模塊中的全部函數導入,格式為:from somemodule import *
import time
print(time.strftime('%Y.%m.%d',time.localtime(time.time())))
上面代碼將輸出如下內容:
2019.02.01
from...import
模塊導入函數
from datetime import datetime print(datetime.now())
上面代碼將輸出如下內容:
2019-02-01 10:14:45.614800
已知目錄結構如下:
test1.py代碼如下:
def add(a, b):
return a + b
test2.py代碼如下:
from test1 import add
print(add(1,2))
運行test2.py打印如下內容:
3
注意,該目錄結構有一個init.py文件,這個init.py文件聲明該目錄是一個python模塊。小伙伴可以試試去掉init.py后是否可以執行。
def 函數名(參數列表):
函數體
def hello():
print("hello world")
class People():
"""
定義一個人類
"""
def __init__(self, name):
self.name = name
def my_name(self):
print("我的名字是:"+self.name)
bobby = People('bobby') # 創建一個對象
bobby.my_name()
上面代碼將輸出如下內容:
我的名字是:bobby
注意:
我們創建了一個People類,People類有一個構造函數,當我們創建一個People類的對象時需要傳入一個參數,創建的對象可以調用People類中的方法
我們在編寫Python程序時,經常會因為一些錯誤導致剩下的代碼無法執行,為了解決這個問題,Python內置了一套try...except...finally...的錯誤處理機制。我們先看一段會拋出異常的代碼
a = 10
if a > 0:
b = a / 0
else:
b = a + 1
print(b)
上面代碼將輸出如下內容:
Traceback (most recent call last):
File "F:/新建文件夾/blogApiTest/test5.py", line 42, in <module>
b = a/0
ZeroDivisionError: division by zero
上面代碼比較簡單,我們發現,我們的當a>0時,我們將執行 b = a / 0,除數為0。我們都知道除數不能為0,所以Python程序會 拋出異常,那么我們怎么才能接受這個異常并使程序繼續執行下去呢?我們可以使用try...except...finally. 如下代碼所示:
try:
a = 10
if a > 0:
b = a / 0
else:
b = a + 1
print(b)
except ZeroDivisionError as e:
print(e)
finally:
print("end")
上面代碼將輸出如下內容:
division by zero
end
我們將我們的程序放在try里面,如果發生錯誤拋出ZeroDivisionError 異常,這里為了簡便,把ZeroDivisionError 重命名為e,當然,我們也可以不使用finally,可以直接使用try...except
。這里有個問題,我是怎么知道會拋出ZeroDivisionError 異常的呢?我將給大家羅列一些常見異常,如下表格所示:
異常 | 描述 |
---|---|
AttributeError | 試圖訪問一個對象沒有的樹形,比如foo.x,但是foo沒有屬性x |
IOError | 輸入/輸出異常;基本上是無法打開文件 |
ImportError | 無法引入模塊或包;基本上是路徑問題或名稱錯誤 |
IndentationError | 語法錯誤(的子類) ;代碼沒有正確對齊 |
IndexError | 下標索引超出序列邊界,比如當x只有三個元素,卻試圖訪問x[5] |
KeyError | 試圖訪問字典里不存在的鍵 |
NameError | 使用一個還未被賦予對象的變量 |
SyntaxError | 語法錯誤 |
TypeError | 傳入對象類型與要求的不符合 |
ValueError | 傳入一個調用者不期望的值,即使值的類型是正確的 |
當然如果我們不知道會拋出什么異常,我們可以使用BaseException
,因為所有的錯誤類型都繼承自BaseException
,所以在使用except時需要注意的是,它不但捕獲該類型的錯誤,還把其子類也“一網打盡”。比如:
try:
a = 10
if a > 0:
b = a / 0
else:
b = a + 1
print(b)
except BaseException as e:
print(e)
上面代碼將輸出如下內容:
division by zero
歡迎關注微信公眾號:軟件測試汪。軟件測試交流群:809111560
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。