python編寫腳本


什么是腳本

Python 是一種“腳本語言”。腳本,對應的英文是:script。一般人看到script這個英文單詞,或許想到的更多的是:電影的劇本,就是一段段的腳本,所組成的。電影劇本的腳本,決定了電影中的人和物,都做哪些事情,怎么做。而計算機中的腳本,決定了:計算機中的操作系統和各種軟件工具,要做哪些事情,以及具體怎么做。

腳本 vs 程序

 

 你可能想要了解腳本與一般程序的區別是什么。

腳本與一般程序的主要區別在於是否編譯。相對於程序而言,腳本更加隨性。寫完了腳本,直接就可以在某種具有解釋功能的環境中運行。(我們將會在本課學習如何寫和運行 Python 腳本。)

而非腳本語言(編譯語言),比如 C、Java 語言。我們需要通過編譯(Compile)和鏈接(link)等步驟,生成可執行文件。然后通過可執行文件在計算機上運行。

 

修改 Python 腳本
自己編寫腳本
在文本編輯器中打開全新的空文件,命名該文件並將其保存到放置 Python 課程文件的文件夾中。將以下代碼放入該文件里。

how_many_snakes = 1
snake_string = """
Welcome to Python3!
____
/ . .\\
\ ---<
\ /
__________/ /
-=:___________/
<3, Juno
"""


print(snake_string * how_many_snakes)

 

在腳本中接受原始輸入
我們可以使用內置函數 input 獲取用戶的原始輸入,該函數接受一個可選字符串參數,用於指定在要求用戶輸入時向用戶顯示的消息。

name = input("Enter your name: ")
print("Hello there, {}!".format(name.title()))
這段代碼提示用戶輸入姓名,然后在問候語中使用該輸入。input 函數獲取用戶輸入的任何內容並將其存儲為字符串。如果你想將輸入解析為字符串之外的其他類型,例如整數(如以下示例所示),需要用新的類型封裝結果並從字符串轉換為該類型。

num = int(input("Enter an integer"))
print("hello" * num)
我們還可以使用內置函數 eval 將用戶輸入解析為 Python 表達式。該函數會將字符串評估為一行 Python 代碼。

result = eval(input("Enter an expression: "))
print(result)
如果用戶輸入 2 * 3,輸出為 6

 

Try 語句
我們可以使用 try 語句處理異常。你可以使用 4 個子句(除了視頻中顯示的子句之外還有一個子句)。

try:這是 try 語句中的唯一必需子句。該塊中的代碼是 Python 在 try 語句中首先運行的代碼。
except:如果 Python 在運行 try 塊時遇到異常,它將跳到處理該異常的 except 塊。
else:如果 Python 在運行 try 塊時沒有遇到異常,它將在運行 try 塊后運行該塊中的代碼。
finally:在 Python 離開此 try 語句之前,在任何情形下它都將運行此 finally 塊中的代碼,即使要結束程序,例如:如果 Python 在運行 except 或 else 塊中的代碼時遇到錯誤,在停止程序之前,依然會執行此finally 塊。
為何在 Python 中需要 finally 子句?

指定異常
我們實際上可以指定要在 except 塊中處理哪個錯誤,如下所示:

try:
# some code
except ValueError:
# some code
現在它會捕獲 ValueError 異常,但是不會捕獲其他異常。如果我們希望該處理程序處理多種異常,我們可以在 except 后面添加異常元組。

try:
# some code
except (ValueError, KeyboardInterrupt):
# some code
或者,如果我們希望根據異常執行不同的代碼塊,可以添加多個 except 塊。

try:
# some code
except ValueError:
# some code
except KeyboardInterrupt:
# some code
練習解決方案:處理除以零的情形
def create_groups(items, num_groups):
try:
size = len(items) // num_groups
except ZeroDivisionError:
print("WARNING: Returning empty list. Please use a nonzero number.")
return []
else:
groups = []
for i in range(0, len(items), size):
groups.append(items[i:i + size])
return groups
finally:
print("{} groups returned.".format(num_groups))

print("Creating 6 groups...")
for group in create_groups(range(32), 6):
print(list(group))

print("\nCreating 0 groups...")
for group in create_groups(range(32), 0):
print(list(group))
修改上面的腳本以處理除以零錯誤。正確修改的話,應該會輸出:

Creating 6 groups...
6 groups returned.
[0, 1, 2, 3, 4]
[5, 6, 7, 8, 9]
[10, 11, 12, 13, 14]
[15, 16, 17, 18, 19]
[20, 21, 22, 23, 24]
[25, 26, 27, 28, 29]
[30, 31]

Creating 0 groups...
WARNING: Returning empty list. Please use a nonzero number.
0 groups returned.
訪問錯誤消息
在處理異常時,依然可以如下所示地訪問其錯誤消息:

try:
# some code
except ZeroDivisionError as e:
# some code
print("ZeroDivisionError occurred: {}".format(e))
應該會輸出如下所示的結果:

ZeroDivisionError occurred: division by zero
因此依然可以訪問錯誤消息,即使已經處理異常以防止程序崩潰!

如果沒有要處理的具體錯誤,依然可以如下所示地訪問消息:

try:
# some code
except Exception as e:
# some code
print("Exception occurred: {}".format(e))
Exception 是所有內置異常的基礎類。你可以在此處詳細了解 Python 的異常。


免責聲明!

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



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