1.3 Python語法初探
1.2.1 輸入和輸出
input輸入(螢幕輸入):
● input()的小括號中放入的是,提示資訊,用來在獲取資料之前給使用者的一個簡單提示
● input()在從鍵盤獲取了資料以後,會存放到等號右邊的變數中
● input()會把使用者輸入的任何值都作為字串來對待
>>> str = input("請輸入:") 請輸入: #這裡是輸入完程式碼直接的輸出 >>> str = input("請輸入:") 請輸入:Hello World! #這裡是輸入Hello Worild!之後IDLE的顯示 >>> print("你輸入的內容是:",str) 你輸入的內容是: Hello World! #此時輸出了我們輸入的str內容
print輸出(螢幕列印):
● print 預設輸出是換行的,如果要實現不換行需要在變數末尾加上 end=""
>>>print("abc") # 輸出字串 abc >>> print(10) # 輸出數字 10 >>> str = 'abc' >>> print(str) # 輸出變數 abc >>> x = [1,2,'a'] # 列表 >>> print(x) [1, 2, 'a'] >>> z = (1,2,'a') # 元組 >>> print(z) (1, 2, 'a') >>> d = {'a':1, 'b':2} # 字典 >>> print(d) {'a': 1, 'b': 2} >>> print(x,z) #多變數輸出 [1, 2, 'a'] (1, 2, 'a') >>> print("字串為:%s"%str) #加變數輸出 字串為:abc
1.2.2 字串的格式化
字串的格式化方法分為兩種,分別為佔位符(%)和format方式。佔位符方式在Python2.x中用的比較廣泛,隨著Python3.x的使用越來越廣,format方式使用的更加廣泛。
python字串格式化符號:
符號 | 描述 |
---|---|
%c | 格式化字元及其ASCII碼 |
%s | 格式化字串 |
%d | 格式化整數 |
%u | 格式化無符號整型 |
%o | 格式化無符號八進位制數 |
%x | 格式化無符號十六進位制數 |
%X | 格式化無符號十六進位制數(大寫) |
%f | 格式化浮點數字,可指定小數點後的精度 |
%e | 用科學計數法格式化浮點數 |
%E | 作用同%e,用科學計數法格式化浮點數 |
%g | %f和%e的簡寫 |
%G | %f 和 %E 的簡寫 |
%p | 用十六進位制數格式化變數的地址 |
format格式化函式
格式化字串的函式 str.format(),它增強了字串格式化的功能。
基本語法是通過 {} 和 : 來代替以前的 % 。
- 用format可以做到:元素訪問、填充對齊、精度設定
>>>"{} {}".format("hello", "world") # 不設定指定位置,按預設順序
'hello world'
>>> "{0} {1}".format("hello", "world") # 設定指定位置
'hello world'
>>> "{1} {0} {1}".format("hello", "world") # 設定指定位置
'world hello world'
>>> print("網站名:{name}, 地址 {url}".format(name="百度", url="www.baidu.com")) #指定引數名
'網站名:百度, 地址 www.baidu.com'
>>>site = {"name": "百度", "url": "www.baidu.com"}
>>>print("網站名:{name}, 地址 {url}".format(**site)) # 通過字典設定引數
'網站名:百度, 地址 www.baidu.com'
>>>my_list = ['百度', 'www.baidu.com']
>>>print("網站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必須的 通過列表索引設定引數
'網站名:百度, 地址 www.baidu.com'
>>> print("{:.2f}".format(3.1415926)); #數字格式化
3.14
數字 | 格式 | 輸出 | 描述 |
---|---|---|---|
3.1415926 | {:.2f} | 3.14 | 保留小數點後兩位 |
3.1415926 | {:+.2f} | +3.14 | 帶符號保留小數點後兩位 |
-1 | {:+.2f} | -1.00 | 帶符號保留小數點後兩位 |
2.71828 | {:.0f} | 3 | 不帶小數 |
5 | {:0>2d} | 05 | 數字補零 (填充左邊, 寬度為2) |
5 | {:x<3d} | 5xx | 數字補x (填充右邊, 寬度為4) |
^, <, > 分別是居中、左對齊、右對齊,後面頻寬度, : 號後面帶填充的字元,只能是一個字元,不指定則預設是用空格填充。
表示在正數前顯示 +,負數前顯示 -; (空格)表示在正數前加空格
b、d、o、x 分別是二進位制、十進位制、八進位制、十六進位制。
1.2.3 註釋
python中單行註釋採用 # 開頭
>>> print ("Hello, Python!") # 第二個註釋
Hello, Python!
python 中多行註釋使用三個單引號(’’’)或三個雙引號(""")
'''
這是多行註釋,使用單引號。
這是多行註釋,使用單引號。
這是多行註釋,使用單引號。
'''
"""
這是多行註釋,使用雙引號。
這是多行註釋,使用雙引號。
這是多行註釋,使用雙引號。
"""
1.2.4 識別符號
- 在Python裡,識別符號: 由字母、數字、下劃線組成,但不能以數字開頭。
- Python 中的識別符號是區分大小寫的。
- 特殊識別符號:
- 以下劃線開頭的識別符號是有特殊意義的。以單下劃線開頭 _foo 的代表不能直接訪問的類屬性,需通過類提供的介面進行訪問,不能用 from xxx import * 而匯入;
- 以雙下劃線開頭的 __foo 代表類的私有成員;以雙下劃線開頭和結尾的 foo 代表 Python 裡特殊方法專用的標識,如 init() 代表類的建構函式。
- python保留字: 保留字即關鍵字,我們不能把它們用作任何識別符號名稱。Python 的標準庫提供了一個 keyword 模組,可以輸出當前版本的所有關鍵字:
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue',
'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global',
'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'if',
'return','try', 'while', 'with', 'yield']
1.2.5 變數
Python 中的變數不需要宣告。每個變數在使用前都必須賦值,變數賦值以後該變數才會被建立。
在 Python 中,變數就是變數,它沒有型別,我們所說的"型別"是變數所指的記憶體中物件的型別。
等號(=)用來給變數賦值。
等號(=)運算子左邊是一個變數名,等號(=)運算子右邊是儲存在變數中的值
多個變數賦值
Python允許你同時為多個變數賦值
a = b = c = 1
以上例項,建立一個整型物件,值為1,三個變數被分配到相同的記憶體空間上。
也可以為多個物件指定多個變數
a, b, c = 1, 2, "abc"
以上例項,兩個整型物件 1 和 2 的分配給變數 a 和 b,字串物件 “abc” 分配給變數 c
1.2.5 行與縮排
Python程式的最基本的組成元素是語句,一條語句可以佔有一個物理行,過長的語句可以佔有多個物理行,此時這多個物理行組成了一個邏輯行,它們在物理上雖然跨越多行,但是邏輯上是屬於同一部分。每個物理行的結尾可以是註釋,#之後到物理行結尾為止的所有字元都是註釋部分,Python直譯器將忽略註釋部分。
當然多個語句也可以在一行,就是多個邏輯行佔一個物理行。
print(1) #一個物理行,一個邏輯行
一個邏輯行佔多個物理行,‘可以將兩個相鄰的物理行連線成一個邏輯行,這需要一個條件就是連線的第一個物理行必須沒有註釋,’‘新增到第一個物理行的後面,注意:’'前面的空格會被當成是物理行的內容。
另外[]、{}、()可以跨越物理行。
例如:
a=""" 佔一個物理行\
佔兩個物理行\
佔三個物理行"""
b=[1,2,
3,4]
多個邏輯行佔一個物理行,語句之間用;隔開
print 1;print 2; print 3
空行
● 函式之間或類的方法之間用空行分隔,表示一段新的程式碼的開始。類和函式入口之間也用一行空行分隔,以突出函式入口的開始。
● 空行與程式碼縮排不同,空行並不是Python語法的一部分。書寫時不插入空行,Python直譯器執行也不會出錯。但是空行的作用在於分隔兩段不同功能或含義的程式碼,便於日後程式碼的維護或重構。
● 記住:空行也是程式程式碼的一部分。
縮排
- 在C語言中有花括號來表示一個語句塊。與其他語言不一樣,Python沒有使用花括號或者其他開始和結束的定界符來表示一個語句塊。
- 縮排是Python表示語句塊的唯一方法。
- 一個語句塊中的所有語句必須使用相同的縮排,表示一個連續的邏輯行序列。
- 原始檔的第一行不需要縮排(不允許以任何空格開始)