日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中return和printf的区别_Python格式化输出:%s和format()用法比较

發布時間:2023/12/4 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中return和printf的区别_Python格式化输出:%s和format()用法比较 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、python格式化輸出歷史起源

python2.5之前,我們使用的是老式格式化輸出:%s。從python3.0開始起(python2.6同期發布),同時支持兩個版本的格式化,多出來的一個新版本就是利用format()函數,進行格式化輸出。

2、為什么要學習python3支持的新式格式化輸出呢?

雖然老式的語法,兼容性很好,但是它的功能很少,很難完成復雜的任務,而format()函數進行格式化輸出,功能更加強大,從下面的學習中你會慢慢體會到。01基本用法

a?=?'%s張飛%s關羽%s劉備%s趙云'?%?(1,2,3,4)

display(a)

b??=?'{}張飛{}關羽{}劉備{}趙云'.format(1,2,3,4)

display(b)

結果如下:

1)format()支持位置格式化填充,%s不支持;第一種方式:

大括號{ }中寫的是format()傳入值所對應的下標。

第二種方式:

大括號{ }中的變量,和format()傳入值是一一對應的。#?--------------------方式一-----------------------

c?=?'{3}張飛{1}關羽{2}劉備{0}趙云'.format(1,2,3,4)

display(c)

#?--------------------方式二-----------------------

def?my_hobbies(fruit,ball,drink):

hobbies?=?'我喜歡水果{fruit},我也喜歡球類{ball},我還喜歡飲料{drink}'.format(ball=ball,fruit=fruit,drink=drink)

return?hobbies

fruit?=?'apple'

ball?=?'basketball'

drink?=?'milk'

my_hobbies(fruit,ball,drink)

#?--------------------方式二-----------------------

fruit?=?'apple'

ball?=?'basketball'

drink?=?'milk'

hobbies?=?'我喜歡水果{fruit},我也喜歡球類{ball},我還喜歡飲料{drink}'.format(ball=ball,fruit=fruit,drink=drink)

display(hobbies)

結果如下:

02填充和對齊

1)填充(只能用一個字符進行填充)

① 什么是填充?概念:當指定了字符串最終的長度,但是現有的字符串沒有那么長,那么我們就用某種字符(填充字符)來填滿至這個長度,這就是“填充”。

② %s:實現填充功能;

a?=?'%s'?%?('張飛')

display(a)

b?=?'%10s'?%?('張飛')

display(b)

結果如下:

③ format():實現填充功能;c?=?'{}'.format('張飛')

display(c)

d?=?'{:10}'.format('張飛')

display(d)

結果如下:

總結如下:通過上述案例結果呈現,當使用的是%s,進行字符串填充的時候,默認是在原字符串左側進行填充;當使用的是format(),進行字符串填充的時候,默認是在原字符串右側進行填充。這就是我們下面要講述的'對齊'。

2)對齊

① 什么是對齊?概念:'對齊'要與'填充'一起使用,才會顯得有意義。當我們進行填充的時候,我們可以選擇只在字符串左側填充,也可以選擇只在字符串右側填充,還可以選擇在字符串兩側填充(字符串居中顯示的填充方式)。

② %s:實現對齊功能,只有左對齊和右對齊;

#?左填充

a?=?'%10s'?%?('張飛')

display(a)

#?右填充

b?=?'%-10s'?%?('張飛')

display(b)

結果如下:

③ format():實現對齊功能,不僅有左對齊和右對齊,還有居中對齊;#?左填充

a?=?':>10'.format('張飛')

display(a)

#?右填充

b?=?':<10'.format('張飛')

display(b)

#?居中填充

c?=?':^10'.format('張飛')

display(c)

結果如下:

④ 使用'特定符號'進行填充;舊版語法中(%s),使用'特定符號'填充,很麻煩,不直接,你也不用去管。

這里主要看新版語法中(format()函數),進行'特定符號'填充。

03截斷

概念:如果我們指定的'截斷長度',比實際給出的'字符串'的長度要短,會發生截斷。

1)長度和截斷長度的區別

① 什么是長度?

“{:8}”.format(“xishi is beautiful”)中,這個8表示的是填充長度,又成為長度,當字符串長度小于這個長度8的時候,會發生填充;當字符串長度大于這個長度8的時候,長度無效,返回的仍然是原來的字符串。

操作如下:

a?=?'{:8}'.format('xishi')

display(a)

b?=?'{:8}'.format('xishi?is?beautiful')

display(b)

結果如下:

② 什么是截斷長度?

“{:10.8}”.format(“xishi is beautiful”)中,這個'.8'叫做截斷長度,這個10叫做填充長度。

注意:只有字符串的長度大于這個階段長度的時候,才會發生截斷。當既有截斷長度,又有填充長度的時候一般先進行截斷,截斷后再進行填充。

操作如下:a?=?'{:.8}'.format('xishi?is?beautiful')

display(a)

#?當字符串長度,小于截斷長度,返回原始字符串,截斷長度無效;

b?=?'{:.8}'.format('abc')

display(b)

結果如下:

③ 填充長度和截斷長度的聯合使用

a?=?'{:*>15.8}'.format('xishi?is?beautiful')

display(a)

結果如下:

注意:當既有截斷長度,又有填充長度的時候一般先進行截斷,截斷后,再進行填充。

④ 使用%s完成截斷a?=?'%.8s'?%?('xishi?is?beautiful')

display(a)

b?=?'%15.8s'?%?('xishi?is?beautiful')

display(b)

結果如下:

04格式化輸出中,與數字相關的語法

1)引入案例

a?=?'{}-{}'.format('1','2')

display(a)

b?=?'{}-{}'.format(1,2)

display(b)

結果如下:

存在的問題:

format()中明明需要傳入字符串,可是這里傳入數值,卻沒有報錯,這是為什么呢?

原因是:python自動幫我們做了一次隱式轉換,但是這種隱式轉換是需要代價的,它會消耗額外的性能,犧牲速度。

因此,我們需要用特定的語法去解決這個問題。

2)填充整數,使用d

① 使用%s完成整數的填充;a?=?'%5d'?%?(3000)

display(a)

b?=?'%d'?%?('3000')

display(b)

結果如下:

② 使用format()完成整數的填充;

a?=?'{:$>5d}'.format(3000)

display(a)

b?=?'{:¥>5d}'.format(3000)

display(b)

結果如下:

3)填充浮點數,使用f(這個才是最常用的,用于保留小數點的位數);

① 引入案例a?=?'{:f}'.format(3.14159268)

display(a)

b?=?'{:f}'.format(3.1415921)

display(b)

c?=?'{:f}'.format(312)

display(c)

d?=?'{:d}'.format(12,34)

display(d)

結果如下:

存在的問題:

1)當使用的f的時候,不管你傳入的數字有幾個小數位,最終都將返回一個六位數的小數,這個問題源自c語言,你也不用管,自己知道就行。

2)當使用f的時候,可以傳入整數;當使用d的時候,就只能傳入整數,而不能傳入小數。

② 使用%s完成浮點數填充,保留2位有效數字;

a?=?'%.2f'?%?(3.1415)

display(a)

結果如下:

③ 使用format()完成浮點數的填充,保留2位有效數字;b?=?'{:.2f}'.format(3.1415)

display(b)

c?=?'{:$>5.2f}'.format(3.1415)

display(c)

結果如下:

注意:在使用浮點數填充的時候,用的最多的就是保留幾位有效數字,由于返回值默認是保留6位小數,因此需要配合使用'截斷'。作者:黃偉呢,個人博客地址:https://blog.csdn.net/weixin_41261833

公眾號「凹凸玩數據」,有趣的不像個技術號~

總結

以上是生活随笔為你收集整理的python中return和printf的区别_Python格式化输出:%s和format()用法比较的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。