《笨辦法學 python3》系列練習計劃——5. 格式化字符串

題目

通過練習瞭解和掌握格式化字符串的使用。
之前的練習中使用了 print() 打印出的字符串內容是固定的,而格式化字符串可以將變量插入到字符串中打印出來,隨着變量的改變打印出的內容也在改變。

加分練習

  1. 去掉所有變量名前面的 my_
  2. 試着使用更多的格式化字符。例如 %r 它的含義是“不管什麼都打印出來”。
  3. 搜索 python 所有的格式化字符。
  4. 使用 python 的計算功能,將變量從英寸和磅轉化爲釐米和千克。




我的答案

5.0. 基礎練習

my_name = 'Zed A. Shaw'
my_age = 35
my_height = 74 # 英寸
my_weight = 180 # 磅
my_eyes = 'Blue'
my_teeth = 'White'
my_hair = 'Brown'

print("let's talk about %s." % my_name)
print("He's %d inches tall." % my_height)
print("He's %d pounds heavy." % my_weight)
print("Actually that's not too heavy.")
print("He's got %s eyes and %s hair." % (my_eyes, my_hair))
print("His teeth are usually %s depending on the coffee." % my_teeth)
# 下面這行復雜一點
print("If i add %d, %d, and %d I get %d." % (
    my_age, my_height, my_weight, my_age + my_height + my_weight
))

這裏寫圖片描述

5.1. 去掉 my_

預期去掉之後沒變化
這裏寫圖片描述

5.2. 使用 %r 格式化字符

# 試用 %r 格式化字符
print("這裏嘗試使用新的格式化字符佔位符,看看效果: %r" % "放個字符串")
print("在試試放個數字:%r" % 666)
print("這次是數字字符串:%r" % '2333')

這裏寫圖片描述
%r 容易和 %s 混淆,其主要區別在於 %r 把原始的信息顯示了出來,如字符串保留了引號。由於這個特性有人會使用 %r 進行 debug 調試

5.3. python 的格式化字符串

python 常用的格式化字符及其效果

佔位符 作用 示例 結果
%s 格式化爲字符串 ‘%s’ % -666.66 ‘-666’
%r 格式化爲原始數據 ‘%r’ % ’ abc ‘ ” ‘abc’ “
%d 格式化爲 10 進制整數 ‘%d’ % 666 ‘666’
%c 整數:將數字轉換成其unicode對應的值,10進制範圍爲
0 <= i <= 1114111(py27則只支持0-255);
字符:將字符添加到指定位置
‘%c %c’ % (97, ‘b’) ‘a b’
%u 將被廢除的方法,等於 %d
%o 格式化爲 8 進制整數 ‘%o’ % 8 ‘10’
%x 格式化爲 16 進制整數 ‘%x’ % 16 ‘10’
%X 16 進制大寫 ‘%X’ % 15 ‘F’
%f 10進制浮點數;
可以用m.n控制最小長度(m)和最小小數位(n)
‘%f;%6.2f’ % (15,10) ‘15.000000; 10.00’
‘10.00’的前面有個空格佔位共6位
%e 使用科學計數法表示浮點數 ‘%e’ % 0.00001 ‘1.000000e-05’
%E 同 %e e爲大寫 ‘%.2E’ % 0.0004 ‘4.00E-04’
%g / %G 以 10 進制或科學計數法表示浮點數 / (大寫) ‘%g’ % 1.001
‘%g’ % 0.00004
‘1.001’
‘4e-05

python 格式化字符輔助符號

輔助符號 作用 示例 結果
* 定義寬度或者小數點精度 ‘%*s; %.*f’ % (2, ‘a’, 2, 4)
’ a; 4.00’
設置了2位字符串,因此有一個空格佔位
- 用做左對齊 ‘%-2s左對齊空格在右邊’ % ‘a’ ‘a 左對齊佔位空格在右邊’
+ 在正數前顯示+號 ‘%+d, %+d, %+o, %+x’ %(-2, 3, 9, 20) ‘-2, +3, +11, +14’
# 在 8 進制前顯示 0o
在 16 進制前顯示 0x0X
‘%#o, %#x, %#X’ % (9, 16, 17) ‘0o11, 0x10, 0X11’
0 數字前填充0而非空格 ‘%05d’ % 5 ‘00005’
(var) 映射變量(通常用來處理字段類型的參數) who = {‘name’:’哈哈餐館’, ‘age’:17}

‘%(name)s is %(age)d years old’ % who
‘哈哈餐館 is 17 years old’
m.n m 是顯示的最小總寬度,
n 是小數點後的位數
‘%4.1f’ % 5 ’ 5.0’

5.4. 單位換算

# 單位換算
print("Zed A. Shaw 高 %.2f 釐米" % (height * 2.54))
print("Zed A. Shaw 重 %.2f 千克" % (weight * 0.45))

這裏寫圖片描述




返回目錄

《笨辦法學 python3》系列練習計劃——目錄

發佈了56 篇原創文章 · 獲贊 138 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章