假設有個python指令碼script.py,不管哪種Unix平台,都可以在命令列上通過解譯器執行:
$ python script.py
Unix平台還可以在不明確指定python解譯器的情況下,自動執行python解譯器,這需要在python指令碼的第一行添加如下shell魔術字串:
#!/usr/bin/python
在#!之後寫上python解譯器的完整路徑,通常在/usr/bin或/usr/local/bin目錄下。還有一種方法是使用env這個命令,位於/bin或/usr/bin中,它會幫你在系統搜尋路徑中找到python解譯器,python指令碼的第一行就可以修改如下:
#!/usr/bin/env python
這樣,執行python指令碼時,就不必顯式地調用python解譯器了,只需要鍵入指令碼的檔案名稱即可:
$ script.py
在 Python 3 中接觸的第一個很大的差異就是縮排是作為文法的一部分,這和C++等其他語言確實很不一樣,所以要小心咯
縮排要使用4個空格(這不是必須的,但你最好這麼做),縮排表示一個代碼塊的開始,非縮排表示一個代碼的結束。沒有明確的大括弧、中括弧、或者關鍵字。這意味著空白很重要,而且必須要是一致的。第一個沒有縮排的行標記了代碼塊,意思是指函數,if 語句、 for 迴圈、 while 迴圈等等的結束。
不過這樣的規定也使得 Python 程式寫出來會更加美觀,便於閱讀,吐槽是沒有用的,接受吧...o(╯□╰)o
Python 思想:
“一切都是對象!”
輸入很簡單
x = input("Please input x:") Please input x:
在代碼最後加上
input("Press Enter")
就可以讓程式運行完後停一下
輸出的 print 函數總結:
1. 字串和數實值型別
可以直接輸出
>>> print(1) 1 >>> print("Hello World") Hello World
2.變數
無論什麼類型,數值,布爾,列表,字典...都可以直接輸出
>>> x = 12 >>> print(x) 12 >>> s = 'Hello' >>> print(s) Hello >>> L = [1,2,'a'] >>> print(L) [1, 2, 'a'] >>> t = (1,2,'a') >>> print(t) (1, 2, 'a') >>> d = {'a':1, 'b':2} >>> print(d) {'a': 1, 'b': 2}
3.格式化輸出
類似於C中的 printf
>>> s 'Hello' >>> x = len(s) >>> print("The length of %s is %d" % (s,x)) The length of Hello is 5
看看《Python基礎編程》中對格式化輸出的總結:
(1). %字元:標記轉換說明符的開始
(2). 轉換標誌:-表示靠左對齊;+表示在轉換值之前要加上加號或減號;“”(空白字元)表示正數之前保留空格;0表示轉換值若位元不夠則用0填充
(3). 最小欄位寬度:轉換後的字串至少應該具有該值指定的寬度。如果是*,則寬度會從值元組中讀出。
(4). 點(.)後跟精度值:如果轉換的是實數,精度值就表示出現在小數點後的位元。如果轉換的是字串,那麼該數字就表示最大欄位寬度。如果是*,那麼精度將從元組中讀出
(5).字串格式化轉換類型
轉換類型 含義
d,i 帶符號的十進位整數
o 不帶符號的八進位
u 不帶符號的十進位
x 不帶符號的十六進位(小寫)
X 不帶符號的十六進位(大寫)
e 科學計數法表示的浮點數(小寫)
E 科學計數法表示的浮點數(大寫)
f,F 十進位浮點數
g 如果指數大於-4或者小於精度值則和e相同,其他情況和f相同
G 如果指數大於-4或者小於精度值則和E相同,其他情況和F相同
C 單字元(接受整數或者單字元字串)
r 字串(使用repr轉換任意python對象)
s 字串(使用str轉換任意python對象)
>>> pi = 3.141592653 >>> print('%10.3f' % pi) #欄位寬10,精度3 3.142 >>> print("pi = %.*f" % (3,pi)) #用*從後面的元組中讀取欄位寬度或精度 pi = 3.142 >>> print('%010.3f' % pi) #用0填充空白 000003.142 >>> print('%-10.3f' % pi) #靠左對齊 3.142 >>> print('%+f' % pi) #顯示加號或減號 +3.141593
4.如何讓 print 不換行
在Python中總是預設換行的
>>> for x in range(0,10): print(x) 0 1 2 3 4 5 6 7 8 9
如果想要不換行,之前的 2.x 版本可以這樣 print x, 在末尾加上 ,
但在 3.x 中這樣不起任何作用
要想換行你應該寫成 print(x,end = '' )
>>> for x in range(0,10): print (x,end = '') 0123456789
拼接字串:
>>> "Hello""World" 'HelloWorld' >>> x = "Hello" >>> y = "world" >>> xy Traceback (most recent call last): File "", line 1, in xy NameError: name 'xy' is not defined >>> x+y 'Helloworld'