格式化輸出
例如我想輸出 我的名字是xxxx 年齡是xxxx
name = "Lucy"
age = 17
print("我的名字是%s,年齡是%d"%(name, age))
# %[(name)][flags][width][.precision]typecode
# []:可以省略
# (name)
# 表示,根據指定的名稱(key),查找對應的值,格式化到字符串當中
1 mathScore = 100
2 englishScore = 96
3 print("我的數學成績是%d,英文成績是%d"%(mathScore, englishScore)) 4 # 如果我想要把分數顛倒過來,除了下面這種方式還有其他方式嗎?
5 print("我的數學成績是%d,英文成績是%d"%(englishScore, mathScore)) 6
7 # 可以使用下面這種方式(字典) 借助(name),用法%(name)d
8 print("我的數學成績是%(es)d,英文成績是%(ms)d"%({"es": englishScore, "ms": mathScore}))
1 # width 表示占用的寬度
2 print("%d" % mathScore) 3
4 print("%10d" % mathScore)
輸出結果::

flags,表示對齊的方式。默認右對齊
# 空:表示右對齊
# -:表示左對齊
# 空格:''為一個空格,表示在正數的左側填充一個空格,從而與負數對齊。
# 0:表示使用0填充
1 print("%-10d" % mathScore) 2 # 無論有多少空格,都只會填充一個空格
3 print("% d" % mathScore) 4
5 # 使用0填充 當輸出時間的時候,我們先設置寬度為2,然后在寬度前面添加0作為填充。如果數字寬度是1位,則用0填充,如果數字寬度是2位,則不進行填充
6 min = 8
7 sec = 9
8 print("%02d:%02d" % (min, sec)) 9
10 min = 36
11 sec = 59
12 print("%02d:%02d" % (min, sec))
輸出結果::

# .precision .precision表示的是數字小數點后的精度。當數字為整數的時候,使用%d,當數字是小數的時候,使用%f,精確到2位就使用.2,精確到10位就使用.10
1 score = 89.9
2 # 此時只能輸出89
3 print("%d" % score) 4
5 # 此時小數點后面的數字就能輸出出來了
6 print("%.1f" % score) 7
8 # 默認的小數點后面是6位
9 print("%f" % score)
輸出結果為:
89
89.9
89.900000
# typecode 這個是必填項
# 注意:二進制是0b開頭,八進制是0o開頭,十六進制是0x開頭
#
# i/d:將整數、浮點數轉換成十進制表示,並將其格式化到指定位置。
#
# o:將整數、浮點數轉換成八進制表示,並將其格式化到指定位置。
#
# x:將整數、浮點數轉換成十六進制表示,並將其格式化到指定位置。
#
# e:將整數、浮點數轉換成科學計數法表示,並將其格式化到指定位置(小寫e)。
#
# E:將整數、浮點數轉換成科學計數法表示,並將其格式化到指定位置(小寫E)。
#
# f:將整數、浮點數轉換成浮點數表示,並將其格式化到指定位置(默認小數點后保留6位)。
#
# F:將整數、浮點數轉換成浮點數表示,並將其格式化到指定位置(默認小數點后保留6位)。
#
# g:自動調整將整數、浮點數轉換成浮點型或科學計數法表示(超過6位使用科學計數法),並將其格式化到指定位置(如果是科學計數這是e)
#
# G:自動調整將整數、浮點數轉換成浮點型或科學計數法表示(超過6位使用科學計數法),並將其格式化到指定位置(如果是科學計數這是E)
1 print("將二進制轉換成十進制::", end="") 2 print("%d" % 0b1010) 3
4 print("將八進制轉換成十進制::", end="") 5 print("%d" % 0o10) 6
7 print("將十六進制進制轉換成十進制::", end="") 8 print("%d" % 0x10) 9
10 print("將十進制進制進制轉換成八進制::", end="") 11 print("%o" % 10) 12
13 # 科學計數法表示
14 print("%e" % 18889999)
# 2.字符串
#
# s:獲取傳入對象的_str_方法的返回值,並將其格式化到指定位置。
#
# r:獲取傳入對象的_repr_方法的返回值,並將其格式化到指定位置。
#
# c:整數:將數字轉換成其Unicode對應的,10進制范圍0<=i<1114111(python27只支持0-255);字符:將字符添加到指定位置。
# 獲取指定數字的Unicode碼
print("%c" % 97)
# %:當字符串中存在格式化標志時,需要用%%表示一個百分號。99%
mScore = 99
print("%d%%" % mScore)
# python中百分號格式化是不存在自動將整數轉換成二進制表示的方式。
#
# %b是錯誤的
