一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python的.format字符串格式化是什么

汽車電子技術(shù) ? 來源:安迪python學(xué)習(xí)筆記 ? 作者:安迪python學(xué)習(xí)筆記 ? 2023-02-23 11:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

  • 1.課題導(dǎo)入
  • 2.知識(shí)回顧
  • 3..format的基本用法
    • 3.1{}為空
    • 3.2 {}中有編號(hào)
    • 3.3 {}中有變量名
  • 4.浮點(diǎn)數(shù)的格式化
  • 5..format官方語法
    1. .format格式化語法總結(jié)
    1. 總結(jié)
  • 8.課堂練習(xí)

1.課題導(dǎo)入

【描述】

用input函數(shù)輸入你每個(gè)月的工資、每天消費(fèi)的平均值及本月的天數(shù),編寫代碼輸出你當(dāng)月的余額(假設(shè)有剩余)。

【參考】

輸入

9000

80

31

輸出

本月我還剩余6520.0元。

【備注】月工資為9000元,平均每天消費(fèi)80元,本月有31天。

【體驗(yàn)代碼】

字符串拼接法:

# input函數(shù)輸入你的月工資,用變量gz存儲(chǔ)
gz = input('你每月的工資是多少元?')

# input函數(shù)輸入你每天的平均消費(fèi),用變量xf存儲(chǔ)
xf = input('你平均每天消費(fèi)多少錢?')

# input函數(shù)輸入本月的天數(shù),用戶變量x存儲(chǔ)
x = input('本月有多少天?')

# 余額=工資-平均消費(fèi)*天數(shù)
yu = float(gz) - float(xf)*int(x)

print('本月我還剩余'+str(yu)+'元。')

【終端輸出】

本月我還剩余6520.0元。

【代碼解析】

  1. input 函數(shù)獲取的內(nèi)容是字符串類型。如果獲取的內(nèi)容是需要用于計(jì)算的數(shù)字,要先將字符串轉(zhuǎn)換成整數(shù)或浮點(diǎn)數(shù)。
  2. float(gz)float(xf)用float函數(shù)將終端輸入的內(nèi)容轉(zhuǎn)換成浮點(diǎn)數(shù)參與計(jì)算。
  3. int(x)用int函數(shù)將輸入的內(nèi)容轉(zhuǎn)換成整數(shù)參與計(jì)算。
  4. yu = float(gz) - float(xf)*int(x)得到的數(shù)據(jù)類型是浮點(diǎn)數(shù)。
  5. str(yu)用str函數(shù)將yu的數(shù)據(jù)類型轉(zhuǎn)換成字符串和前面的字符進(jìn)行拼接。

2.知識(shí)回顧

上面的代碼需要同時(shí)輸出文本信息和變量,我們用了字符串拼接的方法。

我們發(fā)現(xiàn)輸出有數(shù)值變量的一句話要先判斷變量的數(shù)據(jù)類型,然后用函數(shù)統(tǒng)一數(shù)據(jù)類型,操作比較麻煩。

除了字符串拼接方法,同時(shí)輸出文本信息和變量,我們還可以用更便捷的方法:字符串格式化。

之前我們學(xué)了一種格式化方法:%占位符格式化。

我們先回顧 %占位符格式化語法。

【目標(biāo)任務(wù)】

【描述】

輸入自己的姓名、籍貫和畢業(yè)學(xué)校,按指定的格式輸出到屏幕上。

【輸入】

第一行輸入姓名。

第二行輸入籍貫。

第三行輸入畢業(yè)學(xué)校。

【輸出】

大家好,我叫XXX,來自XXX,畢業(yè)于XXX!

【示例】

輸入:

安迪

云南

復(fù)旦大學(xué)

輸出:

大家好,我叫安迪,來自云南,畢業(yè)于復(fù)旦大學(xué)!

【體驗(yàn)代碼1】

name = input()
city = input()
school = input()
print("大家好,我叫%s,來自%s,畢業(yè)于%s! "  %  (name,city,school))

【終端輸出】

大家好,我叫安迪,來自云南,畢業(yè)于復(fù)旦大學(xué)!
  1. 3個(gè)%s 是我要替換的內(nèi)容。
  2. %是占位符格化語法,是固定用法。
  3. name,city,school是我要替換%s的變量,我也稱它們?yōu)橐袷交淖兞俊?/li>

3..format的基本用法

本節(jié)我們學(xué)第2種字符串格式化方法。

format[?f??m?t]:格式。

.format的通常有3種用法:

  1. {}為空。
  2. {}中有編號(hào)。
  3. {}中有變量名。

3.1{}為空

為了講解方便,這里我直接給變量賦值,不再從終端獲取數(shù)據(jù)。

name = "安迪"
city = "云南"
school = "復(fù)旦大學(xué)"
print("大家好,我叫{},來自{},畢業(yè)于{}!".format(name, city, school))

【終端輸出】

大家好,我叫安迪,來自云南,畢業(yè)于復(fù)旦大學(xué)!

【編寫思路】

一.編寫格式化模板。

  1. 我們要輸出的內(nèi)容是:大家好,我叫安迪,來自云南,畢業(yè)于復(fù)旦大學(xué)!
  2. 把要格式化的內(nèi)容用英文大括號(hào){}替換:

安迪替換為大括號(hào){}。

云南替換為大括號(hào){}。

復(fù)旦大學(xué)替換為大括號(hào){}

格式化模板為:"大家好,我叫{},來自{},畢業(yè)于{}!"

二. 語法關(guān)鍵字。

  1. 輸入一個(gè)英文小圓點(diǎn).
  2. format關(guān)鍵字

三. 要格式化的變量。

  1. (name, city, school)英文圓括號(hào)中寫入要格式化的變量名。

【語法解析】

{}為空時(shí)默認(rèn)按格式化變量的順序自動(dòng)格式化到大括號(hào)中。

【調(diào)整格式化變量的順序】

(name, city, school)順序調(diào)整為(school, name, city)。

運(yùn)行下面的代碼,觀察輸出結(jié)果。

name = "安迪"
city = "云南"
school = "復(fù)旦大學(xué)"
print("大家好,我叫{},來自{},畢業(yè)于{}!".format( school, name, city))

【終端輸出】

大家好,我叫復(fù)旦大學(xué),來自安迪,畢業(yè)于云南!

觀察輸出結(jié)果,我們發(fā)現(xiàn)在{}為空時(shí),它是按照后面要格式化變量的順序進(jìn)行填充的。

因?yàn)?code>school在第1個(gè),它替換了第1個(gè){},輸出內(nèi)容變成了我叫復(fù)旦大學(xué)。

{}為空時(shí)需要重點(diǎn)關(guān)注要格式化變量的順序。

【{ }中輸入了一個(gè)空格】

name = "安迪"
city = "云南"
school = "復(fù)旦大學(xué)"
print("大家好,我叫{ },來自{ },畢業(yè)于{ }!".format( school, name, city))

【終端輸出】

KeyError: ' '

在編寫格式化模板時(shí),我在{}中敲了一個(gè)空格。

我叫{}變成我叫{ }。

觀察輸出結(jié)果,程序報(bào)錯(cuò)。

初學(xué)者千萬注意,這里的{}中是不能寫入空格的。

3.2 {}中有編號(hào)

print("大家好,我叫{0},來自{1},畢業(yè)于{2}!".format("安迪", "云南","復(fù)旦大學(xué)"))

【終端輸出】

大家好,我叫安迪,來自云南,畢業(yè)于復(fù)旦大學(xué)!

【編寫思路】

一.編寫格式化模板。

  1. 我們要輸出的內(nèi)容是:大家好,我叫安迪,來自云南,畢業(yè)于復(fù)旦大學(xué)!
  2. 把要格式化的內(nèi)容用英文大括號(hào)加編號(hào){編號(hào)}替換:

安迪替換為{0}。

云南替換為{1}。

復(fù)旦大學(xué)替換為{2}。

格式化模板為:"大家好,我叫{0},來自{1},畢業(yè)于{2}!"

二. 語法關(guān)鍵字。

  1. 輸入一個(gè)英文小圓點(diǎn).
  2. format關(guān)鍵字

三. 要格式化的內(nèi)容。

  1. ("安迪", "云南", "復(fù)旦大學(xué)")英文圓括號(hào)中寫入要格式化的內(nèi)容。

【語法解析】

{編號(hào)}:大括號(hào)中有編號(hào)時(shí),按照格式化變量的編號(hào)順序進(jìn)行格式化。

【溫馨提示】

Python中的正索引是從0開始編號(hào)的。

這里的編號(hào)順序也是從0開始。

  1. {0}表示要格式化的第1個(gè)變量,即"安迪"。
  2. {1}表示要格式化的第2個(gè)變量,即 "云南"。
  3. {2}表示要格式化的第3個(gè)變量,即 "復(fù)旦大學(xué)"。

【多次格式化同一個(gè)變量】

print(
    "大家好,我叫{0},來自{1},我的同桌也來自{1},我們班有5個(gè)同學(xué)來自{1}!"
.format("安迪", "云南")
)

【終端輸出】

大家好,我叫安迪,來自云南,我的同桌也來自云南,我們班有5個(gè)同學(xué)來自云南!

【代碼解析】

上述代碼格式化模板中我用了3個(gè){1},即"云南"我使用了3次。

只要內(nèi)容相同,我們是可以多次使用的。

【格式化變量的順序影響輸出結(jié)果】

name = "安迪"
city = "云南"
school = "復(fù)旦大學(xué)"
print("大家好,我叫{0},來自{1},畢業(yè)于{2}!".format(school, name, city ))

【終端輸出】

大家好,我叫復(fù)旦大學(xué),來自安迪,畢業(yè)于云南!

【代碼解析】

根據(jù)格式化變量(school, name, city )的順序:

{0}要格式化的變量是school,因此輸出了我叫復(fù)旦大學(xué)

{1}要格式化的變量是name,因此輸出了來自安迪。

3.3 {}中有變量名

print(
    "大家好,我叫{name},來自{city},畢業(yè)于{school}!"
    .format(name = "安迪", school = "復(fù)旦大學(xué)", city = "云南")
    )

【終端輸出】

大家好,我叫安迪,來自云南,畢業(yè)于復(fù)旦大學(xué)!

【編寫思路】

一.編寫格式化模板。

  1. 我們要輸出的內(nèi)容是:大家好,我叫安迪,來自云南,畢業(yè)于復(fù)旦大學(xué)!
  2. 把要格式化的內(nèi)容用英文大括號(hào)加變量名{變量名}替換:

安迪替換為{name}。

云南替換為{city}。

復(fù)旦大學(xué)替換為{school}。

格式化模板為:"大家好,我叫{name},來自{city},畢業(yè)于{school}!"

二. 語法關(guān)鍵字。

  1. 輸入一個(gè)英文小圓點(diǎn).
  2. format關(guān)鍵字

三. 要格式化的變量。

  1. (name = "安迪", school = "復(fù)旦大學(xué)", city = "云南")英文圓括號(hào)中寫入已經(jīng)賦值了的格式化變量。

【代碼解析】

  1. {name}要替換的內(nèi)容也可以直接用英文大括號(hào)加變量名表示。
  2. (name = "安迪", school = "復(fù)旦大學(xué)", city = "云南")給要格式化的變量直接賦值。
  3. 這種情況下不用考慮格式化變量的順序。
  4. 程序會(huì)對照變量名進(jìn)行格式化。

4.浮點(diǎn)數(shù)的格式化

【目標(biāo)任務(wù)】

格式化輸出3位數(shù)的小數(shù)。

【示例】

將3.1415926格式化后輸出3.142。

【體驗(yàn)代碼】

# :是固定語法
# .3 表示保留小數(shù)點(diǎn)后3位
# f 表示浮點(diǎn)數(shù)
print("{:.3f}".format(3.1415926))

【終端輸出】

3.142

【編寫思路】

  1. 輸入英文冒號(hào):。
  2. 輸入一個(gè)英文小圓點(diǎn).

這里點(diǎn)表示告訴程序后面要采取的是精度操作,即保留小數(shù)點(diǎn)位數(shù)的操作。

  1. 輸入一個(gè)整數(shù),表示小數(shù)點(diǎn)保留的位數(shù)。

.1表示保留1位小數(shù)。

.2表示保留2位小數(shù)。

.3表示保留3位小數(shù)。

  1. f表示數(shù)據(jù)類型為浮點(diǎn)數(shù)。
  2. 再輸入一個(gè)英文小圓點(diǎn).。

這里.format是格式化語法固定搭配。

  1. 輸入format關(guān)鍵字。
  2. 要格式的浮點(diǎn)數(shù)本身或浮點(diǎn)數(shù)變量名。

:.1f保留1位小數(shù)】

print("{:.1f}".format(3.1415926))

【終端輸出】

3.1

:.2f保留2位小數(shù)】

print("{:.2f}".format(3.1415926))

【終端輸出】

3.14

:.4f保留4位小數(shù)】

print("{:.4f}".format(3))

【終端輸出】

3.0000

5..format官方語法

【以下內(nèi)容不需要掌握】

【官方語法參考】

{參數(shù)序號(hào):格式控制標(biāo)記}.format(*args,**kwargs)

  1. 參數(shù)序號(hào)是位置參數(shù)或關(guān)鍵字參數(shù)傳遞過來的參數(shù)變量。
  2. 英文冒號(hào):是固定語法。
  3. 格式控制標(biāo)記用來控制參數(shù)顯示時(shí)的格式。這里有9個(gè)可選的標(biāo)記。

有對齊方式:<表示左對齊;>表示右對齊;^居中對齊;=數(shù)字填充。

有精度:精度即用英文小圓點(diǎn).表示,后面緊跟一個(gè)整數(shù)。操作對象為小數(shù)表示小數(shù)保留的位數(shù);操作對象為字符串表示截取字符的個(gè)數(shù)。

有輸出類型:默認(rèn)為s;s表示字符;d表示整數(shù);f表示浮點(diǎn)數(shù)。

還有6種這里不做介紹。

  1. .format是格式化語法。
  2. *args表示位置參數(shù)。
  3. **kwargs表示關(guān)鍵字參數(shù)。

上面是str.format格式化語法的官方介紹。

很多教材里也都是這么敘述的。

如果我像這樣寫,初學(xué)者很難看懂。

因此我用了大白話對官方描述進(jìn)行了翻譯。

初學(xué)者不用理解位置參數(shù)、關(guān)鍵字參數(shù)等含義,你把它理解成要格式化的對象即可。

其實(shí),Python中很多函數(shù)都有很多個(gè)可選參數(shù),例如print函數(shù)也有4個(gè)參數(shù),我都沒做詳細(xì)介紹。

初學(xué)者不是研究者,我們先掌握基礎(chǔ)語法和常用方法即可。

6. .format格式化語法總結(jié)

  1. {}
name = "安迪"
city = "云南"
school = "復(fù)旦大學(xué)"
print(
    "大家好,我叫{},來自{},畢業(yè)于{}!"
    .format(  name, city, school)
    )

【終端輸出】

大家好,我叫安迪,來自云南,畢業(yè)于復(fù)旦大學(xué)!
  1. {編號(hào)}
print(
    "大家好,我叫{0},來自{1},畢業(yè)于{2}!"
    .format("安迪", "云南","復(fù)旦大學(xué)")
    )

【終端輸出】

大家好,我叫安迪,來自云南,畢業(yè)于復(fù)旦大學(xué)!
  1. {變量名}
print(
    "大家好,我叫{name},來自{city},畢業(yè)于{school}!"
    .format(name = "安迪", school = "復(fù)旦大學(xué)", city = "云南")
    )

【終端輸出】

大家好,我叫安迪,來自云南,畢業(yè)于復(fù)旦大學(xué)!
  1. :.4f保留4位小數(shù)
print("{:.4f}".format(3))

【終端輸出】

3.0000

【備注】.format格式化語法用例題理解更為直觀。

.format語法主要由3個(gè)部分組成:

  1. 格式化模板,即要輸出的內(nèi)容,需要格式化的地方用{}代替。
  2. .format,格式化語法。
  3. 要格式化的變量。

7. 總結(jié)

圖片

51-1 .format字符串格式化總結(jié)1

8.課堂練習(xí)

  1. .format格式化語法輸出:我是白敬亭,今年29歲。

【體驗(yàn)代碼】

# 原樣輸出:我是白敬亭,今年29歲。
print('我是白敬亭,今年29歲。')

print('我是{},今年{}歲。'.format('白敬亭',29))

print('我是{name},今年{age}歲。'.format(name='白敬亭',age=29))

【終端輸出】

我是白敬亭,今年29歲。
我是白敬亭,今年29歲。
我是白敬亭,今年29歲。
  1. .format格式化語法輸出:今天是12月17日,油價(jià)8.5元每升。

【體驗(yàn)代碼】

# 方法一
print('今天是{},油價(jià){}元每升。'.format('12月17日',8.5))

# 方法二
print('今天是{data},油價(jià){price}元每升。'.format(data='12月17日',price=8.5))

【終端輸出】

今天是12月17日,油價(jià)8.5元每升。
今天是12月17日,油價(jià)8.5元每升。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4380

    瀏覽量

    64850
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70718
  • 編寫
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    8612
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    LABVIEW中的printf函數(shù)---格式化寫入字符串函數(shù)

    `我們經(jīng)常會(huì)遇到格式化字符串輸出的問題,參見下面的程序框圖。在C語言中,類似功能的函數(shù)是printf函數(shù),該函數(shù)幾乎是C語言經(jīng)典課程的第一節(jié)內(nèi)容,可見其用途之廣泛。C語言中實(shí)現(xiàn)上面程序框圖的功能非常
    發(fā)表于 11-15 10:46

    Labview格式化寫入字符串函數(shù)

    Labview格式化寫入字符串函數(shù)
    發(fā)表于 12-26 12:42

    格式化寫入字符串函數(shù) 求助

    格式化寫入字符串函數(shù)格式字符串:%6f\n%s\n%d\n%s這個(gè)怎么理解?
    發(fā)表于 07-13 13:23

    C語言技巧 sprintf()函數(shù):將格式化的數(shù)據(jù)寫入字符串

    [table][tr][td]頭文件#include 功能用于將格式化的數(shù)據(jù)寫入字符串。原型int sprintf(char *str, char * format [, argument
    發(fā)表于 04-01 11:26

    2.6 python字符串格式化

    2.6 python字符串格式化格式化輸出,主要有三種方式使用 % 進(jìn)行格式化使用 format
    發(fā)表于 02-21 16:28

    python字符串拼接方式了解

    python字符串拼接的方式 在Python的實(shí)際開發(fā)中,很多都需要用到字符串拼接,python字符串
    發(fā)表于 12-06 10:09 ?1106次閱讀

    AVR入門:怎么樣使用AVR LibC's Stdio發(fā)送格式化字符串

    AVR入門:使用AVR LibC's Stdio發(fā)送格式化字符串 (#21)
    的頭像 發(fā)表于 07-09 00:02 ?3251次閱讀
    AVR入門:怎么樣使用AVR LibC's Stdio發(fā)送<b class='flag-5'>格式化</b>的<b class='flag-5'>字符串</b>?

    Python字符的實(shí)例詳細(xì)說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是Python字符的實(shí)例詳細(xì)說明包括了:Python 轉(zhuǎn)義字符,Python
    發(fā)表于 10-14 17:13 ?7次下載
    <b class='flag-5'>Python</b><b class='flag-5'>字符</b>的實(shí)例詳細(xì)說明

    剖析提升字符串格式化效率的小技巧

    一、前言 在嵌入式項(xiàng)目開發(fā)中,字符串格式化是很常見的操作,我們一般都會(huì)使用 C 庫中的 sprintf 系列函數(shù)來完成格式化。 從功能上來說,這是沒有問題的,但是在一些時(shí)間關(guān)鍵場合,字符串
    的頭像 發(fā)表于 04-30 13:43 ?1871次閱讀
    剖析提升<b class='flag-5'>字符串</b><b class='flag-5'>格式化</b>效率的小技巧

    python字符串格式化

    python字符串格式化 格式化輸出,主要有三種方式 使用 % 進(jìn)行格式化 使用 format
    的頭像 發(fā)表于 02-21 16:28 ?1856次閱讀
    <b class='flag-5'>python</b><b class='flag-5'>字符串</b><b class='flag-5'>格式化</b>

    如何把數(shù)字格式化字符串

    在嵌入式項(xiàng)目開發(fā)中,字符串格式化是很常見的操作,我們一般都會(huì)使用 C 庫中的 sprintf 系列函數(shù)來完成格式化。
    的頭像 發(fā)表于 08-04 10:35 ?2284次閱讀

    格式化字符串常量f-strings一些不常見的特性

    【導(dǎo)語】:本文介紹了“格式化字符串常量”f-strings一些不常見的特性,包括:格式化日期和時(shí)間、同時(shí)打印變量名和變量值等,嵌套使用f-strings等,此外與其他格式化
    的頭像 發(fā)表于 08-15 12:00 ?1406次閱讀

    python字符串有哪些特定方法

    python字符串序列操作也適用于列表和元組。 python字符串還有獨(dú)有方法,即字符串對象的函數(shù),其他對象不可調(diào)用,只有
    的頭像 發(fā)表于 02-23 15:02 ?960次閱讀

    python里面format怎么理解

    Python中,格式化字符串是一種用來創(chuàng)建動(dòng)態(tài)字符串的強(qiáng)大工具。它允許你在字符串中插入變量、表達(dá)式和其他值,從而根據(jù)需要?jiǎng)?chuàng)建不同形式的輸出
    的頭像 發(fā)表于 11-22 09:42 ?843次閱讀

    pythonformat函數(shù)怎么用

    Python中的format()函數(shù)是用于格式化字符串的內(nèi)置函數(shù)。它允許我們將變量的值插入到字符串中,并對
    的頭像 發(fā)表于 11-22 09:44 ?3647次閱讀