活動地址:CSDN21天學習挑戰賽
上一節,我們學習【Python語言程序設計的基本方法】,知道什麼了是程序設計語言,了解了Python語言的發展及特點,並進行Python開發環境的搭建以及Python集成開發環境PyCharm的安裝及模板設置.
本節我們將學習Python語言的基本語法元素。包括Python程序的格式框架,語法元素名稱,數據類型和語句元素以及基本的輸入輸出函數。
程序的格式框架,即段落格式,是Python
語法的一部分,可以提高代碼的可讀性和可維護性。
Python語言采用嚴格的縮進來表示程序邏輯。也就是我們所說的Python程序間的包含與層次關系。一般代碼不要求縮進,頂行編寫且不留空白。在if、while、for、def、class
等保留字所在完整語句後通過英文的“:
”結尾並在之後行進行縮進,表明後續代碼與緊鄰無縮進語句的所屬關系。
縮進可以用Tab
鍵實現,也可以用多個空格實現(一般是4個空格
),但兩者不能混用。建議采用4個空格方式書寫代碼。
for i in range(1, 10):
for j in range(1, i+1):
print(i, '*', j, '=', i*j, end='\t')
print()
當程序執行時,產生了“unexpected indent
”錯誤,說明代碼中出現了縮進不匹配的問題。
注釋是代碼中的輔助性文字,會被編譯器或解釋器略去,不被計算機執行,一般用於程序員對代碼的說明。Python語言中使用“#
”表示一行注釋的開始。注釋可以在一行中任意位置通過“#
”開始,其後面的本行內容被當作注釋,而之前的內容依然是Python執行程序的一部分。
注釋的作用:
# -*- coding: utf-8 -*-
# @File : demo.py
# @author: Flyme awei
# @email : [email protected]
# @Time : 2022/8/2 13:40
# 單行注釋
'''多行注釋'''
"""多行注釋"""
Python程序是逐行編寫的,每行代碼長度並無限制,但從程序員角度,單行代碼太長並不利於閱讀。這個時候就可以使用續行符將單行代碼分割為多行表達。
Python中的續行符為“\
”。續行符之後不允許再存在空格,即續行符後直接換行。
print("雲南的城市有{}\n{}\n{}\n{}".format('昆明',\
'曲靖',\
'大理',\
'麗江'))
Python語言的基本單位是單詞,少部分單詞是Python語言規定的,被稱為保留字。大部分單詞是用戶自己定義的,通過命名過程形成了變量或函數,用來代表數據或代碼,稱為標識符。
變量是保存和表示數據值的一種語法元素,變量的值是可以改變的,通過賦值運算符“=
”方式被修改。Python語言中,變量可以隨時命名、隨時賦值、隨時使用。
由三部分組成:
""" 標識: id 類型: type 值: value """
多次賦值後將指向新的空間
name = 'hello' # 第一次賦值
print(id(name)) # 標識
print(type(name)) # 類型
name = 'world' # 第二次賦值
print(name)
保留字也稱keyword關鍵字,被編程語言內部定義並保留使用的,每種程序設計語言都有一套保留字,保留字一般用來構成程序的整體框架,Python3.x
中一共有35個保留字。
import keyword # 導入關鍵字模塊
print(keyword.kwlist) # 調用keyword模塊的kwlist方法
Python3.x中的35個保留字
and as assert async await break
class continue def del elif else
except False finally for from
global if import in is lambda None
nonlocal not or pass raise return
True try while with yield
Python二級考試涉及到的保留字一共有22個。選學5個:None、finally、lambda、pass、with。
Python中的保留字也是大小寫敏感的。舉例:True
為保留字,而true
則不是保留字。
標識符可以簡單的理解為一個名字,主要用來標識變量、函數、類、模塊和其他對象的名稱。
標識符的命名規則
ISO-Latin(ISO-8859-1)
字符集中的A-Z
和a-z
name
和Name
是兩個不同的名字。 二進制是一套計數方法,每個位置上的數有 2 種可能(0 - 1);二進制是計算機的執行語言,但是早在計算機出現前就存在這套計數方法,最早可追溯到古埃及。在日常生活中,我們使用的是十進制,每個位置上的數有 10 種可能(0 - 9)。
早期的程序員爸爸為了讓計算機能夠認識我,將我能夠認識的符號和數字對應好,然後做成一張表叫ASCII
表,告訴計算機某種符號你應該使用哪個整數表示,A
使用了8個位(置)才能裝得下我,在計算機中他們叫一個字節。
ASCII 碼使用指定的 7 位或 8 位二進制數組合來表示 128 或 256 種可能的字符。標准 ASCII 碼也叫基礎ASCII碼,使用 7 位二進制數來表示所有的大寫和小寫字母,數字 0 到 9、標點符號, 以及在美式英語中使用的特殊控制字符。其中:
0~31及127(共33個)是控制字符或通信專用字符(其余為可顯示字符),如控制符:LF(換行)、CR(回車)、FF(換頁)、DEL(刪除)、BS(退格)、BEL(振鈴)等;通信專用字符:SOH(文頭)、EOT(文尾)、ACK(確認)等;ASCII值為 8、9、10 和 13 分別轉換為退格、制表、換行和回車字符。它們並沒有特定的圖形顯示,但會依不同的應用程序,而對文本顯示有不同的影響。
32~126(共95個)是字符(32sp是空格),其中48~57為0到9十個阿拉伯數字;
65~90為26個大寫英文字母,97~122號為26個小寫英文字母,其余為一些標點符號、運算符號等。
同時還要注意,在標准ASCII中,其 最高位(b7) 用作奇偶校驗位。所謂奇偶校驗,是指在代碼傳送過程中用來檢驗是否出現錯誤的一種方法,一般分奇校驗和偶校驗兩種。奇校驗規定:正確的代碼一個字節中 1 的個數必須是奇數,若非奇數,則在最高位 b7 添1;偶校驗規定:正確的代碼一個字節中1的個數必須是偶數,若非偶數,則在最高位 b7 添1。
後128個稱為擴展ASCII碼,目前許多基於x86的系統都支持使用擴展(或“高”)ASCII。擴展 ASCII 碼允許將每個字符的第 8 位用於確定附加的 128 個特殊符號字符、外來語字母和圖形符號。
ASCII碼表
ASCII碼表字符解釋
Python提供的3種數值類型:
整數類型:與數學中的整數一致,包含正、負、0。一個整數有二進制、八進制、十進制、十六進制4種表示方式。
浮點數類型:與數學中的小數一致,沒有取值范圍限制,可正、可負。有兩種表示形式,一種是小數點的形式,另外一種是科學計數法。浮點數只有十進制形式。
復數:與數學中的復數一致,采用a+bj
的形式表示,存在實部和虛部。
計算機經常處理文本信息,文本信息在程序中使用字符串類型表示。在Python中使用單引號或雙引號括起來的一個或多個字符來表示。單引號和雙引號的作用相同。
# 字符串類型 被稱為不可變的字符序列
print('我用python')
print("我用python")
print('''我用python''')
print(type('我用python'))
print(type("我用python"))
print(type('''我用python'''))
字符序列有兩種序號體系:
正向遞增序號: 有效范圍為[0,N-1],其中N為字符串中字符的個數。最左側的字符序號為0,依次向右遞增,最右側字符序號為N-1。
反向遞減序號:有效范圍為[-1,-N],其中N為字符串中字符的個數。最右側的字符序與為-1,依次向左遞減,最左側的字符序號為-N。
兩種索引可以同時使用,以下代碼為對單個字符進行的索引。
s = 'hello word'
print(s[0]) # h
print(s[-10]) # h
還可以采用[N:M]
格式獲取字符串的子串,這種操作被稱為切片操作。[N:M]
獲取字符串中從N
到M
(但不包含M
)的連續的子字符串。N
和M
都表示的是索引序號,可以混合使用正向遞增序號和反向遞減序號。
s = 'hello word'
print(s[0:5]) # hello
print(s[0:-5]) # hello
通過Python默認提供的len()函數獲取字符串的長度,一個中文字符和一個英文字符的長度都記為1。
print(len(s)) # 10
產生或計算新數據值的代碼片段稱為表達式。類似於數學中的公式,一般由數據和操作符構成。
對變量進行賦值的一行代碼被稱為賦值語句。在Python中使用一個“=
”表示“賦值”,即將等號右側表達式計算後的結果值賦給左側的變量。
基本賦值語句語法:變量 = 表達式
同步賦值語句就是同時給多個變量進行賦值。
同步賦值語句語法:
變量1,變量2,......變量N=表達式1,表達式2,......,表達式N
同步賦值語句應用最多的就是互換變量的值。即交換兩個變量的值。
Python程序會經常使用到當前程序之外已有的功能代碼,這個過程叫引用。
Python語言中使用import
這個保留字引用當前程序以外的功能庫。import <功能庫名稱>
引用功能庫之後使用 功能庫.函數名()
的方式調用基本功能,這種方式簡稱為“A.B()
”方式。
除了賦值語句之外,Python還有分支語句和循環語句。先簡單介紹一下使用,後面後詳細講解。
分支語句:根據判斷條件選擇程序執行路徑。一般包含單分支結構、雙分支結構和多分支結構。
單分支語法結構:
if 條件:
語句塊
任何能夠產生True或False的語句都可以作為條件,當條件為True時,則執行語句塊中的內容。
雙分支語法結構:
if 條件:
語句塊1
else:
語句塊2
當條件為True
時,執行語句塊1,當條件為False
時,執行語句塊2。其中if...else
都是保留字。
循環結構與分支結構一樣都是程序控制語句,它的作用是根據判斷條件確定一個程序是否再執行一次或者多次。
條件循環的語法結構:
while 條件:
語句塊1
語句塊2
當條件為True
時,執行語句塊1,然後再次判斷條件,當條件為False
時,退出循環,執行語句塊2。
input()
函數是從控制台獲得用戶的一行輸入,無論用戶輸入什麼內容,input()
函數都以字符串類型返回。input()
函數可以包含一些提示性文字,用來提示用戶。
input語法格式:變量=input('提示性文字')
無論用戶輸入的是數字還是字符,input()
函數統一按照字符串類型輸出,為了後續能夠操作用戶輸入的信息,需要將輸入指定一個變量進行存儲。
input()
函數的提示性文字不是必須的,可寫可不寫。
eval(s)
函數將去掉字符串s
最外側的引號,並按照Python語句方式執行去掉引號後的字符內容。
eavl語法格式:變量 = eval(字符串)
變量用來保存對字符串內存進行Python運算的結果。
eval()
函數去掉了字符串’1.2
’最外側的引號,結果賦值給a
,所以a
的類型為float
類型。eval()
函數去掉了字符串’1.2+3.4’
最外側的引號,對其內容當作Python語句進行運算,運算的結果為4.6
,保存到變量a中,所以a的類型是float
類型。
當eval()
函數處理字符串’python
’時,字符串去掉了兩邊的引號,Python語句將其解釋為一個變量,由於這個變量在之前別有定義,因此解釋器報錯。如果定義變量python
並賦值為123
,再運行這個語句時就沒有問題,如果輸出為123
。
eval()
函數經常和input()
函數一起使用,用來獲取用戶輸入的數字。
eval()
與input()
函數一起使用的語法:變量=eval(input(提示性文字))
q
用戶輸入的數字、包括小數和負數,input()
解析為字符串,再由eval()
去掉字符串引號,將被直接解析為數字保存到變量中。
print()
函數用於輸出運算結果。
def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
""" print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. flush: whether to forcibly flush the stream. """
pass
sep=' '
分隔符,默認為一個空格end='\n'
結束符,默認以換行結束
print()
函數的三種用法:
1.僅用於輸出字符串或單個變量print(待輸出字符串或變量)
對於字符串,print()
函數輸出後將出掉兩側引號,對於其它類型,則會直接輸出。
當print()
輸出字符串表示時,字符串統一使用單引號表達。在[]
中的字符串都使用了雙引號,但是在被print()
函數打印輸出時,輸出結果都采用了單引號。
2.用於輸出一個或多個變量 ,輸出後的各變量之間用一個空格分隔。print(變量1,變量2,......,變量N)
3.用於混合輸出字符串與變量的值,其中輸出字符串模板中使用{}表示一個槽位,每個槽位對應.format()
中的一個變量。print(輸出字符串模板.format(變量1,變量2,......,變量N))
‘整數{}和整數{}的差是:{}
’是輸出字符串模板,也就是混合字符串輸出的樣式,大括號{}
表示一個槽位,括號中的內容由後面緊跟著的format()
方法中的參數按順序填充。
100天精通Python(基礎篇)——第2天:入門必備
Bubble Sort: It is an algorith