python的輸出
python輸出中的print()函數,直接引用即可,它的完整格式為:
1
2
|
#最后面還有文件操作的,我們主要學習輸出相關,所以暫不加入 print ( object , sep = ' ' , end = '\n' ) |
object
——是我們要輸出的東西,可以是變量也可以是具體的數據,可以是單個也可以是多個,如果是多個中間用' , '分隔即可
sep
——當我們要輸出多個東西時才會用到,它表示我們輸出的多個數據之間輸出時用什么來進行分隔,如果輸出時不設置,那就默認以一個空格來分隔
end
——用來設置輸出完我們要輸出的數據之后,用什么來結尾。當你不特意進行設置時它默認為end='\n' ,所以print()函數默認輸出結束后自動換行
1
2
3
4
5
6
7
|
print ( 1 , 2 , 3 ,end = '') print ( 1 , 2 , 3 ,sep = '!' ) print ( 1 , 2 , 3 ,) #它們的輸出如下: 1 2 31 ! 2 ! 3 1 2 3 #請仔細思考為什么這樣,理清楚頭緒 |
我們在C語言中學的scanf()函數是格式化輸出的,可以設置要輸出的數據的格式與數據形式,那我們在python如何來實現呢?
1
2
3
|
int a = 10 ; float b = 6.6 ; scanf( "%d%f\n" ,a,b); |
上面C語言代碼用python實現為:
1
2
3
4
|
a = 10 b = 6.6 print ( "%d%f" % (a,b)) #print(a,b,sep='') |
如果對輸出數據格式有要求我們選用上面的方式,可以和c語言一樣對于輸出的格式進行修改設定
如果對輸出格式沒有要求我們選用第二種方法,比較方便,與字符串一起輸出時可以用+進行連接,但前提是輸出類型也是字符串類型的,如果不是字符串類型,那我們可以用str()函數進行強制轉換在進行連接輸出,如下:
1
2
|
a = 18 print ( "Her age is " + a + " !" ) |
上面這樣寫時錯誤的,因為a為賦值為18,所以a的數據類型為整型,整型不可以直接與字符串用+進行連接,所以正確的寫法應該是:
1
2
3
|
a = 18 print ( "Her age is " + str (a) + " !" ) #輸出為:Her age is 18 ! |
接下來具體講一下格式化輸出數據,%的格式化輸出與C語言的大同小異:
%d——十進制整數
%o —— 八進制整數
%x —— 十六進制整數
%f——浮點數,小數點后面六位有效數字
%e ——指數形式輸出,小數點后面六位有效數字
%g ——六位有效數字的前提下,使用小數方式,否則使用科學計數法
1
2
3
4
5
6
7
|
a = 5 print ( 10 ) print ( "%d" % a) print ( "%2d" % a) #輸出時按照2個空間大小輸出,默認為右對齊 print ( "%-2d" % a) #2個空間大小,因為d前面是-號,所以左對齊 print ( "%02d" % a) #2個空間大小輸出,不夠的用0補齊 print ( "%-02d" % a) #2個空間大小輸出,不夠的用0補齊,左對齊 |
#以上代碼的輸出為:
10
5
5
5
05
5
總結一下上面代碼,%與d之間可以加一些數字或者符號來控制輸出數據的格式,具體為:
%(控制左右對齊)(用什么補齊)(按照幾位空間輸出)d分別為:
默認為右對齊,負號為左對齊
默認空格補齊,可以設置其他補齊
數字本身超過要求的空間時,無影響,數據本身不夠時,根據左右對齊,在根據補齊。說白了就是占位置
其他的數據類型也都是類似的,無論是浮點數還是字符串,如%5.2f代表,占五個位置,并且保留兩位小數,要特別注意的是浮點數的小數點也是占一個位置的,接下來看幾個實例,好好體會一下
1
2
3
4
5
6
7
8
|
b = 5.21 print (b) print ( "%f" % b) print ( "%2.1f" % b) print ( "%2.2f" % b) print ( "%5.2f" % b) print ( "%5.5f" % b) print ( "%.5f" % b) |
#上面的輸出依次為:
5.21
5.210000
5.2
5.21
5.21
5.21000
5.21000
#大家注意對比研究
有些東西必須要自己體會出來才能記下來,希望大家能夠勤奮思考,不要偷懶!
接下來介紹一個函數——str.format()
相對基本格式化輸出采用‘%'的方法,format()功能更強大,該函數把字符串當成一個模板,通過傳入的參數進行格式化,并且使用大括號‘{}'作為特殊字符代替‘%'
廢話不多說上代碼!!!
1
2
3
4
5
6
7
8
|
#通過位置匹配,類似于數組 print ( '{} {}' . format ( 'hello' , 'baibai' )) #hello baibai print ( '{1} {0}' . format ( 'hello' , 'baibai' )) #baibai hello print ( '{1} {1}' . format ( 'hello' , 'baibai' )) #baibai baibai print ( '{0} {0}{0}' . format ( 'hello' , 'baibai' )) #hello hellohello #通過對應值名字進行匹配,類似于字典 #(這里也可以傳入一個字典類型進行key與value對應取) print ( '{a},{b}' . format (a = '1' ,b = '8' )) #1,8 |
除了這些,我們還可以輸出更加復雜的數據類型
1
2
3
4
5
6
|
#還是用一下我之前定義的一個數據 goods = [( 1 , "百事可樂" , 10 , 3 ),( 2 , "康師傅方便面" , 15 , 2 ),( 3 , "馬克杯" , 5 , 30 )] list = [ 1 , 2 , 3 ] print ( '{0[1]}' . format (goods)) #(2, '康師傅方便面', 15, 2) print ( '{0[1]},{1[2]}' . format (goods, list )) #(2, '康師傅方便面', 15, 2),3 print ( '{0[1][1]}' . format (goods, list )) #康師傅方便面 |
總結
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注服務器之家的更多內容!
原文鏈接:https://blog.csdn.net/apple_51673523/article/details/120805079