1. 程式人生 > >1.3 Python語法初探

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表示語句塊的唯一方法。
  • 一個語句塊中的所有語句必須使用相同的縮排,表示一個連續的邏輯行序列。
  • 原始檔的第一行不需要縮排(不允許以任何空格開始)