中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

3. Python基礎語法

發布時間:2020-07-15 14:46:19 來源:網絡 閱讀:163 作者:軟件測試汪 欄目:編程語言

注釋

我們在文言文中經常會看到注釋,注釋可以幫助讀者對文章的理解。代碼中的注釋也是一樣,優秀的代碼注釋可以幫助讀者對代碼的理解。當然在代碼編寫過程中,注釋的使用不一定只是描述一段代碼,也可能的是對代碼的調試。

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 print
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

input意思是等待用戶輸入,print我們之前也已經用過,表示打印的意思。我們運行下面這段代碼,會發現Pycharm打印臺需要我們輸入2個數,當我們輸入第一個數字時,按下Enter,會讓我們輸入第二個數,輸完第二個數,按Enter,程序運行結束。當然下面這段代碼是有Bug的,猜猜Bug在哪里呢?如下代碼所示:

a = input("請輸入第一個數:")
b = input("請輸入第二個數:")
print("輸入的2個數和為:", (a + b)

上面代碼將輸出如下內容:

請輸入第一個數:1
請輸入第二個數:2
輸入的2個數和為:3

import與from...import

python 用 import 或者 from...import 來導入相應的模塊。
將整個模塊(somemodule)導入,格式為: import somemodule
從某個模塊中導入某個函數,格式為: from somemodule import somefunction
從某個模塊中導入多個函數,格式為:from somemodule import firstfunc, secondfunc, thirdfunc
將某個模塊中的全部函數導入,格式為:from somemodule import *

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

從.py文件導入

已知目錄結構如下:
3. Python基礎語法
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

注意

  1. 第一種方法init()方法是一種特殊的方法,被稱為類的構造函數或初始化方法,當創建了這個類的實例時就會調用該方法。
  2. self 代表類的實例,self 在定義類的方法時是必須有的,雖然在調用時不必傳入相應的參數。

我們創建了一個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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

伊吾县| 婺源县| 无为县| 榆中县| 江源县| 高邮市| 佛学| 正安县| 英山县| 衡水市| 中西区| 甘孜县| 泰来县| 临澧县| 正蓝旗| 南岸区| 兴隆县| 石城县| 随州市| 涪陵区| 咸宁市| 耒阳市| 临湘市| 砀山县| 莲花县| 库伦旗| 调兵山市| 奉新县| 杂多县| 靖西县| 桃江县| 烟台市| 泰来县| 中卫市| 湖口县| 两当县| 沾化县| 乌拉特后旗| 临高县| 黄浦区| 贞丰县|