注釋
注釋可以幫助閱讀程式,通常用于概括演算法、確認變數的用途或者闡明難以理解的代碼段,隨著程式越來越大、越來越復雜,就應在其中添加說明,對我們解決問題的方法進行大致闡述,在Python程式中有兩種型別的注釋,分別是單行注釋和多行注釋,
- 單行注釋
單行注釋是只在一行中顯示注釋內容,Python中單行注釋以井號(#)開頭,井號(#)后面的內容都會被Python解釋器忽略,
# 向大家問好
print('Hello Python people!')
- 多行注釋
多行注釋也稱為成對注釋,這類注釋的標記是成對出現的,在Python語言中,有兩種實作多行注釋的方法,
- 第一種:用3個單引號’’'將注釋括起來,
'''
print('nei hou')
print('nei hou')
print('nei hou')
'''
print('這是多行注釋,用3個單引號')
- 第二種:用3個雙引號"""將注釋括起來,
"""
print('nei hou')
print('nei hou')
print('nei hou')
"""
print('這是多行注釋,用3個雙引號')
注意:
- 注釋要放在被注釋內容的上方或后面,
- 函式頭部需注釋,包括檔案名、作者資訊、功能資訊和版本資訊,
- 宣告中文編碼格式的方法是在檔案開頭加上如下代碼
# coding = utf-8
# 或者
# coding = gbk
識別符號
識別符號是用來標識某個物體的一個符號,在編程語言中,識別符號是計算機語言中作為名字的有效字串集合,識別符號是用戶編程時使用的名字,變數、常量、函式、陳述句塊也有名字,它們的名字稱為識別符號,
1、合法的識別符號
在Python語言中,所有識別符號可以包括英文、數字以及下劃線,但要符合以下規則:
- 識別符號開頭必須是字母或下劃線,剩下的字符可以是字母和數字或下劃線,
- 識別符號中不能出現分隔符、標點符號或者運算子,
- 識別符號是區分大小寫的,
- 識別符號不能使用關鍵字,
- 識別符號最好不要使用內置模塊名、型別名、函式名、已經匯入的模塊名及其成員,
可以通過dir(__builtins__)查看所有內置函式和內置物件,
[‘ArithmeticError’, ‘AssertionError’, ‘AttributeError’, ‘BaseException’, ‘BlockingIOError’, ‘BrokenPipeError’, ‘BufferError’, ‘BytesWarning’, ‘ChildProcessError’, ‘ConnectionAbortedError’, ‘ConnectionError’, ‘ConnectionRefusedError’, ‘ConnectionResetError’, ‘DeprecationWarning’, ‘EOFError’, ‘Ellipsis’, ‘EnvironmentError’, ‘Exception’, ‘False’, ‘FileExistsError’, ‘FileNotFoundError’, ‘FloatingPointError’, ‘FutureWarning’, ‘GeneratorExit’, ‘IOError’, ‘ImportError’, ‘ImportWarning’, ‘IndentationError’, ‘IndexError’, ‘InterruptedError’, ‘IsADirectoryError’, ‘KeyError’, ‘KeyboardInterrupt’, ‘LookupError’, ‘MemoryError’, ‘ModuleNotFoundError’, ‘NameError’, ‘None’, ‘NotADirectoryError’, ‘NotImplemented’, ‘NotImplementedError’, ‘OSError’, ‘OverflowError’, ‘PendingDeprecationWarning’, ‘PermissionError’, ‘ProcessLookupError’, ‘RecursionError’, ‘ReferenceError’, ‘ResourceWarning’, ‘RuntimeError’, ‘RuntimeWarning’, ‘StopAsyncIteration’, ‘StopIteration’, ‘SyntaxError’, ‘SyntaxWarning’, ‘SystemError’, ‘SystemExit’, ‘TabError’, ‘TimeoutError’, ‘True’, ‘TypeError’, ‘UnboundLocalError’, ‘UnicodeDecodeError’, ‘UnicodeEncodeError’, ‘UnicodeError’, ‘UnicodeTranslateError’, ‘UnicodeWarning’, ‘UserWarning’, ‘ValueError’, ‘Warning’, ‘WindowsError’, ‘ZeroDivisionError’, ‘build_class’, ‘debug’, ‘doc’, ‘import’, ‘loader’, ‘name’, ‘package’, ‘spec’, ‘abs’, ‘all’, ‘any’, ‘ascii’, ‘bin’, ‘bool’, ‘breakpoint’, ‘bytearray’, ‘bytes’, ‘callable’, ‘chr’, ‘classmethod’, ‘compile’, ‘complex’, ‘copyright’, ‘credits’, ‘delattr’, ‘dict’, ‘dir’, ‘divmod’, ‘enumerate’, ‘eval’, ‘exec’, ‘exit’, ‘filter’, ‘float’, ‘format’, ‘frozenset’, ‘getattr’, ‘globals’, ‘hasattr’, ‘hash’, ‘help’, ‘hex’, ‘id’, ‘input’, ‘int’, ‘isinstance’, ‘issubclass’, ‘iter’, ‘len’, ‘license’, ‘list’, ‘locals’, ‘map’, ‘max’, ‘memoryview’, ‘min’, ‘next’, ‘object’, ‘oct’, ‘open’, ‘ord’, ‘pow’, ‘print’, ‘property’, ‘quit’, ‘range’, ‘repr’, ‘reversed’, ‘round’, ‘set’, ‘setattr’, ‘slice’, ‘sorted’, ‘staticmethod’, ‘str’, ‘sum’, ‘super’, ‘tuple’, ‘type’, ‘vars’, ‘zip’]
2、下劃線識別符號
以下劃線開頭的識別符號具有特殊意義,
- 以單下劃線開頭
(_xxx)的識別符號代表不能直接訪問的類屬性,需要通過類提供的介面進行訪問,不能用“from xxx import x” 匯入, - 以雙下劃線開頭
(__xxx)的識別符號代表類的私有成員, - 以雙下劃線開頭和結尾
(__xxx__)的識別符號代表Python中特殊方法專用的標識,如__init__代表類的建構式,
關鍵字
在Python中,有一部分是關鍵字,構成語言的識別符號,這樣的識別符號是保留字,不能用于其他用途,否則會引起語法錯誤,我們可以匯入keyword模塊查看所有Python關鍵字,
import keyword
print(keyword.kwlist)
| Symbol | Description |
|---|---|
| and | 用于運算式運算,表示邏輯與操作 |
| as | 用于型別轉換 |
| assert | 斷言,用于判斷變數或條件運算式的值是否為真 |
| break | 中斷回圈陳述句的執行 |
| class | 用于定義類 |
| continue | 繼續執行下一次回圈 |
| def | 洗掉變數或者序列的值 |
| elif | 條件陳述句,與if else結合使用 |
| else | 條件陳述句,與if else結合使用,也可用于例外和回圈 |
| except | 包括捕獲例外后的操作代碼,與try和finally結合使用 |
| finally | 用于例外陳述句,出現例外后,始終要執行finally包含的代碼塊,與try、except結合使用 |
| for | 回圈陳述句 |
| from | 用于匯入模塊,與import結合使用 |
| global | 定義全域變數 |
| if | 條件陳述句,與else、elif結合使用 |
| import | 用于匯入模塊,與from結合使用 |
| in | 判斷變數是否存在序列中 |
| is | 判斷變數是否為某個類的實體 |
| lambda | 定義匿名函式 |
| nonlocal | 用于表示外部作用域的變數 |
| not | 用于運算式運算,表示邏輯非操作 |
| or | 用于運算式運算,表示邏輯或操作 |
| pass | 空的類、函式、方法的占位符 |
| raise | 例外拋出操作 |
| return | 用于從函式回傳計算結果 |
| try | 包含可能會出現例外的陳述句,與except、finally結合使用 |
| while | 回圈陳述句 |
| with | 簡化Python的陳述句 |
| yield | 用于從函式依次回傳值 |
注意:None是一個特殊的Python物件,和False不同,不是0,也不是空字串、空串列等,None有自己的資料型別NoneType,None和任何其他資料型別進行是否相等比較結果回傳永遠是False,可以將None賦值給任何變數,但是不能創建其他NoneType物件,
變數
變數可以通過變數名訪問,變數通常是可變的,Python語言同樣可以定義變數,用于表示可變資料,變數具有名字,不同變數是通過名字相互區分的,因此變數名具有標識作用,也就是識別符號,以下是Python變數名的命名規則:
- 變數名只能包含字母、數字和下劃線,但不能用數字開頭,例如可將變數命名為message_1,但不能將其命名為1_message,
- 變數名不能包含空格,但可使用下劃線來分隔其中的單詞,例如變數名greeting_message可行,但變數名greeting message會引發錯誤,
- 不要將Python關鍵字和函式名用作變數名,
- 除了下劃線之外,其他符號不能作為變數名使用,
- 變數名應既簡短又具有描述性,例如,name比n好,student_score比s_s好,
- 慎用小寫字母l和大寫字母O,因為它們可能會被看成數字1和0,
message = 'Hello Python world!'
print(message)
# 同時賦予多個變數
x,y = 1,2
print('x:%s,y:%s'%(x,y))
資料型別
Python語言中提供了幾種資料型別,如數值(int、float、和complex)、布爾(bool)、字串(str)、串列(list)、元組(tuple)、字典(dict)等,
1、整數型int
整數是沒有小數部分的數值,分為正整數、0和負整數,例如下列值都是合法的整數:
100 、 0、 -100
2、浮點型float
浮點數是包含小數點的數或科學計數法表示的數,例如下列值都是浮點數:
-56 、 0.19 、 10.0 、 5.12e2 、 3.14e-1 、22.1E-10
3、復數型complex
復數由實數部分和虛數部分構成,復數形式為:實部+虛部 j 或者complex(a,b)
3.14j 、 5.213e-11j 、 -0.987+0j
4、布爾型
布爾型是一種表示邏輯值的簡單型別,它的值只能是真或假這兩個值中的一個,即True和Flase.
>>> 10>8
True
>>> 1+2==2+1``
True
>>> True and False
False
5、字串
可以使用單引號、雙引號、三引號來創建字串,
‘Hello’ 、 “Python” 、 ‘’‘11111’’’
6、串列list
串列用中括號“[“和”]”將串列中的元素括起來,元素間以逗號分隔,
[1,2,3] 、 [‘apple’,‘pear’,‘orange’]
7、元組tuple
元組用"(“和”)"作為邊界將元素括起來,元素間以逗號分隔,
(1,2,3) 、 (‘apple’,‘pear’,‘orange’)
8、字典dict
字典是Python中唯一內建的映射型別,可用來實作通過資料查找關聯資料的功能,字典是鍵值對的無序集合,字典中每個元素都包含鍵和值兩部分,字典用大括號{ }來表示,鍵和值間用冒號分隔,元素之間用逗號分隔,
{‘語文’:‘122分’,‘數學’:‘110分’,‘英語’:‘125分’}
9、集合set
Python中集合是一組物件的集合,物件可以是各種不可變型別,集合可以由各種不可變型別元素組成,但元素之間沒有任何順序,并且元素都不重復,
(‘apple’,‘pear’,‘orange’,‘peach’)
運算子
1、算術運算子
通常用于實作數學運算功能,
| 運算子 | 功能 |
|---|---|
| + | 加,實作兩個物件相加 |
| - | 減,得到負數或表示一個數減去另一個數 |
| * | 乘,實作兩個數相乘或者回傳一個被重復若干次的字串 |
| / | 除,實作一個數除以另一個數 |
| % | 取模,回傳除法的余數 |
| // | 取整除,回傳商的整數部分,不包含余數 |
| ** | 冪,回傳x的y次冪 |
2、比較運算子
也稱為關系運算子,表示兩個變數或常量之間的關系,可用來比較兩個數字的大小,
| 運算子 | 功能 |
|---|---|
| > | 大于,用于回傳x是否大于y |
| < | 小于,用于回傳x是否小于y |
| >= | 大于等于,用于回傳x是否大于等于y |
| <= | 小于等于,用于回傳x是否小于等于y |
| == | 等于,用于比較物件是否相等 |
| != | 不等于,用于比較物件是否不相等 |
3、測驗運算子
也稱為成員運算子,能夠測驗實體中包含的一系列成員,包括字串、串列或元組,
| 運算子 | 功能 |
|---|---|
| in | 如果在制定序列中找到值則回傳True;否則,回傳False |
| not in | 如果在制定序列中沒有找到值則回傳True;否則,回傳False |
4、邏輯運算子
| 運算子 | 功能 |
|---|---|
| and | x為 False,x and y 回傳False, 否則它回傳y的計算值 |
| or | x為 True,x or y 回傳True, 否則它回傳y的計算值 |
| not | x為 True,not x 回傳False,;x為False ,not x 回傳 True |
運算式
案例
根據以下敘述寫出正確的條件運算式:
有語文(Chinese)、數學(Math)、英語(English)三門課程,均采用百分制,60分及以上及格,90分及以上優秀,
(1)三門課程都及格
(2)至少一門課程及格
(3)語文及格且數學或者英語優秀
# 第一小題
Chinese >= 60 and Math >= 60 and English >= 60
# 第二小題
Chinese >= 60 or Math >= 60 or English >= 60
# 第三小題
(Chinese >= 60) and (Math >= 90 or English >= 90)
內置函式
Python內置了一系列的常用函式,不需要額外匯入任何模塊就可以直接使用,運行速度較快,非常方便,我們可以使用內置函式 dir( ) 查看所有的內置函式和內置物件,還可以通過help(函式名) 查看某個函式的用法,
常用內置函式
| 函式 | 功能 |
|---|---|
| abs(x) | 回傳數字x的絕對值;如果x為復數,回傳值就是該復數的模 |
| bin(x) | 把整數x轉換為二進制 |
| divmod(x,y) | 函式回傳整商和余數的元組 |
| id(x) | 回傳物件x的標識(記憶體地址) |
| len(x) | 回傳物件x(串列、元組、字典、字串、集合、range物件)的元素個數 |
| max(x)、min(x) | 回傳給定引數的最大值、最小值,引數可以為可迭代物件 |
| pow(x,y) | 回傳以x為底,y為指數的冪 |
| range([start, ]end[,step]) | 回傳range物件,該物件包含按引數([start,] end)范圍內,step為步長 |
| round(x[,n]) | 回傳浮點數x的四舍五入值,若不給出n值,則回傳整數;給出n值,則代表舍入到小數點后的位數 |
| sum(iterable,start=0,/) | 回傳序列iterabla中所有元素之和,如果指定起始值start,則回傳start+sum(iterable);如果iterable為空,則回傳start |
| type(x) | 回傳物件x的資料型別 |
常用內置型別轉換函式
| 函式 | 功能 |
|---|---|
| chr(x) | 回傳Unicode編碼為x所對應的字符 |
| ord(x) | 回傳一個一個字符的Unicode編碼 |
案例
1、通過輸入函式input()輸入股票代碼、股票名稱、當天股票最高價和最低價,通過輸出函式print()輸出股票代碼+股票名稱、最高價、最低價和差價,
# 法一
stock_code = int(input('請輸入股票代碼:'))
stock_name = input('請輸入股票名稱:')
highest = float(input('請輸入股票當天最高價:'))
lower = float(input('請輸入股票當天最低價:'))
diff = highest-lower
print('股票代碼+股票名稱:%s+%s,最高價:%s,最低價:%s,差價:%s'
%(stock_code,stock_name,highest,lower,diff))
# 法二(用split和 map)
print('輸入以","分隔')
nn=input('請輸入股票代碼和股票名稱:')
code,name = map(str,nn.split(','))
hl = input('請輸入當天最高價和最低價:')
highest,lower = map(float,hl.split(','))
diff = highest-lower
print('股票代碼+股票名稱:%s+%s'%(code,name))
print('最高價:%.2f,最低價:%.2f,差值:%.2f'%(highest,lower,diff))
2、請撰寫一個程式,能接受用戶輸入的一個復數的實部和虛部,輸出其復數表示形式,以及其模,
# 法一
import math
a = float(input('請輸入復數的實部:'))
b = float(input('請輸入復數的虛部:'))
c = math.sqrt(a**2+b**2)
print('復數:'+str(a)+'+'+str(b)+'i')
print('模為:',c)
# 法二
import math
x = input('請輸入復數的實部和虛部:')
a,b = map(float,x.split())
m = complex(a,b)
c = abs(m)
print('輸入的復數為:'+str(m),',模為:'+str(c))
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/260596.html
標籤:python
上一篇:day16 階段總結
