python入門(四)——語法格式

一門語言,無論是中文英文,還是編程語言,都應該有一定的格式,遵守一定的規則。好的格式能夠讓人更好的理解語句所表達的意義。

先看一個腳本的例子

# encoding=utf-8
import math                  # 導入模塊 <- 這是註釋

value = 100                  # 數字賦值

def test_func():             # 定義函數
    str001 = "你好世界"      # 字符賦值
    a = math.sqrt(value)     # 調用 math 包裏的開平方函數 
    print(a, "----", str001) # 在控制檯打印一些內容

test_func()                  # 調用函數

用第二節的方法運行這個腳本,可以得到下面的輸出

10.0 ---- 你好世界

import

首先看第二行import mathimport語句是用來導入一個模塊math,這個模塊是python下載的時候就自帶的,其中定義了基本的數學函數,比如上面用到的sqrt函數,就是開平方的函數。模塊是python的一大支柱,之後會詳細講。

註釋

值得注意的是後面用#符號隔開了一段解釋的話,這成爲稱爲的註釋。程序語言畢竟是很機器化,不便於人的理解。如果你寫一個大程序,一天寫不好,你今天寫了一部分,就在關鍵的地方寫一些註釋,第二天回來,就知道自己寫了什麼,不用從頭看一遍。同樣,別人看你的代碼,有註釋也會很好理解。

python的註釋就是用#符號,一行之內#符號後面的就是註釋。python解釋器解釋腳本的時候,遇到註釋就跳過。所以註釋只是給人看的,對於程序沒有任何意義,你也可以不寫註釋。

第一行的註釋有點特殊,它指定了腳本文件的編碼。由於python默認就是utf-8編碼,這裏的encoding=utf-8指定編碼是utf-8也沒有什麼作用。你也可以指定encoding:gbk,編碼是gbk,等於號和冒號沒有區別。

如果你是linux用戶,一般會在最開頭加上#!/usr/bin/env python3,不過這應該是bash的要求,不寫也可以用python3 script.py來執行。

縮進

通常編程語言的縮進是爲了美觀,但是python的縮進是強制要求。所謂的縮進,就是一行的開頭空一定的位置,這有利於顯示語句之間的層次。而python則強制要求使用縮進來表示同一個層次的語句。比如,上面定義的test_func函數中,函數看上去並沒有結束的標誌,實際上是通過縮進判斷函數的結束。如果把上面腳本的a = math.sqrt(value)的一行前面多加一個空格。運行程序就會出現下面的報錯

  File "test.py", line 8
    a = math.sqrt(value)     # 調用 math 包裏的開平方函數
    ^
IndentationError: unexpected indent

其中IndentationError就是縮進錯誤的意思。

建議縮進是以4個空格爲一個層次,你可以使用製表符,但是不建議。Notepad++可以設置製表符自動轉化爲4個空格,請自行百度。你在網上看到的python代碼,複製到你的腳本里的時候,也要注意縮進一致。如果你採用製表符爲縮進,網上的代碼是4個空格縮進,雖然在Notepad++或者其他編輯器裏面,看上去是對齊了的,但是還是會有縮進錯誤,這一點要尤其注意。

python標識符

所謂標識符,可以簡單的理解可以作爲變量名的東西。函數名等其他的各種對象都需要有名字,標識符就是可以作爲名字的字符串。比如上面的value=100str001="你好世界",其中valuestr001就是標識符。

一般的語言,通常都是如下規則

  • 第一個字符是英文字母或者下劃線_;
  • 其他部分由字母或者下劃線或者數字組成;
  • 大小寫敏感(也就是Namename是不同的標識符)

對於python3,可以使用非ASCII標識符,包括使用中文,比如

變量1 = 100
β = "wtf"

保留字

所謂保留字,就是用於表示python語法規則的字符串,是不能用作變量名的。比如前面用到的importdef,還有後面要學到的表示邏輯的ifelse等。可以在交互式環境下這樣查看pyhton保留字

>>> import keyword
>>> 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']

多行和一行多句

寫代碼爲了看起來不費力,往往一行代碼字符數不會太多,如果一行要寫很多東西,可以使用\續行,比如

a = "this is first line" + \
    "這是第二行"

續行不需要縮進對齊,但是爲了美觀,還是建議對其。

python一行只能寫一句話,如果想要在一行寫多個語句,需要用;

a = 100; b = "str"

注意,對於學過c/c++的同學,加分號是習慣,而c/c++中可以用分號分隔一行多句,有的時候會用逗號來分隔一行多句,但是在python中這是錯誤的,python的逗號默認創建元組,這在後面會提到。所以一行多句一定只能用分號,並且一行多句也不建議使用,多數情況下這並不美觀

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章