一、 簡述
“格式化字符串(format string)” - 每一次你使用 ' ’ 或 " " 把一些文本引用起來,你就建立了一個字符串。 字符串是程序將信息展示給人的方式。
二、 代碼
1 #!usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 # Author: xixihuang 5 # Date : 2016/08/31 09:52 AM 6 # Desc : 習題5:更多的變量與打印 7 # 鍵入更多的變量並且將它們打印出來。這次將使用一個叫“格式化字符串(format string)”的東西。 8 # 每一次使用“把一些文本引用起來,你就建立了一個字符串。字符串是程序將信息展示給人的方式。 9 10 # 11 # 12 # 13 14 my_name = 'Zed A. Shaw' 15 my_age = 35 # not a lie 16 my_height = 74 # inches 17 my_weight = 180 # lbs 18 my_eyes = 'Blue' 19 my_teeth = 'White' 20 my_hair = 'Brown' 21 22 print "Let's talk about %s." % my_name 23 print "He's %d inches tall." % my_height 24 print "He's %d pounds heavy." % my_weight 25 print "Actually that's not too heavy." 26 print "He's got %s eyes and %s hair." % (my_eyes, my_hair) 27 print "His teeth are usually %s depending on the coffee." % my_teeth 28 29 # this line is tricky, try to get it exactly right 30 print "If I add %d, %d, and %d I get %d." % ( 31 my_age, my_height, my_weight, my_age + my_height + my_weight)
三、 輸出結果
$ python ex5.py Let's talk about Zed A. Shaw. He's 74 inches tall. He's 180 pounds heavy. Actually that's not too heavy. He's got Blue eyes and Brown hair. His teeth are usually White depending on the coffee. If I add 35, 74, and 180 I get 289. $
四、 加分習題
1. 修改所有的變量名字,把它們前面的``my_``去掉。確認將每一個地方的都改掉,不只是你使用``=``賦值過的地方。
全部替換快捷鍵: Ctrl + R
2. 試着使用更多的格式化字符。例如 %r 就是是非常有用的一個,它的含義是“不管什么都打印出來”。
格式化字符 描述
%d 有符號整數(十進制) ;
%s 調用 str函數打印字符串,str函數返回原始字符串;
%r 調用 rper函數打印字符串,repr函數返回的字符串是加上了轉義序列,是直接書寫的字符串的形式;
3. 在網上搜索所有的 Python 格式化字符。
字符串格式化操作符(%)只適用於字符串類型,非常類似於C 語言里面的printf()函數的字符串格式化,甚至所用的符號都一樣,都用百分號(%),並且支持所有printf()式的格式化操作。
語法如下:
format_string % string_to_convert
其中:format_string為格式標記字符串,形式為“%cdoe”;string_to_convert 為要格式化的字符串,如果是兩個以上,則需要用小括號括起來。
Python 字符串格式化符號:
格式 描述
%% 百分號標記 #就是輸出一個%
%c 字符及其ASCII碼
%s 字符串
%d 有符號整數(十進制)
%u 無符號整數(十進制)
%o 無符號整數(八進制)
%x 無符號整數(十六進制)
%X 無符號整數(十六進制大寫字符)
%e 浮點數字(科學計數法)
%E 浮點數字(科學計數法,用E代替e)
%f 浮點數字(用小數點符號)
%g 浮點數字(根據值的大小采用%e或%f)
%G 浮點數字(類似於%g)
%p 指針(用十六進制打印值的內存地址)
%n 存儲輸出字符的數量放進參數列表的下一個變量中
%格式化符也可用於字典,可用%(name)引用字典中的元素進行格式化輸出。
負號指時數字應該是左對齊的,“0”告訴Python用前導0填充數字,正號指時數字總是顯示它的正負(+,-)符號,即使數字是正數也不例外。
可指定最小的字段寬度,如:"%5d" % 2。也可用句點符指定附加的精度,如:"%.3d" % 3。
e.g.
# 例:數字格式化
nYear = 2018
nMonth = 8
nDay = 18
# 格式化日期 %02d數字轉成兩位整型缺位填0
print '%04d-%02d-%02d'%(nYear,nMonth,nDay)
>> 2018-08-18 # 輸出結果
fValue = 8.123
print '%06.2f'%fValue # 保留寬度為6的2位小數浮點型
>> 008.12 # 輸出
print '%d'%10 # 輸出十進制
>> 10
print '%o'%10 # 輸出八進制
>> 12
print '%02x'%10 # 輸出兩位十六進制,字母小寫空缺補零
>> 0a
print '%04X'%10 # 輸出四位十六進制,字母大寫空缺補零
>> 000A
print '%.2e'%1.2888 # 以科學計數法輸出浮點型保留2位小數
>> 1.29e+00
格式化操作符輔助指令
符號 作用
* 定義寬度或者小數點精度
- 用做左對齊
+ 在正數前面顯示加號( + )
<sp> 在正數前面顯示空格
# 在八進制數前面顯示零('0'),在十六進制前面顯示'0x'或者'0X'(取決於
用的是'x'還是'X')
0 顯示的數字前面填充‘0’而不是默認的空格
% '%%'輸出一個單一的'%'
(var) 映射變量(字典參數)
m.n m 是顯示的最小總寬度,n 是小數點后的位數(如果可用的話)
4. 試着使用變量將英寸和磅轉換成厘米和千克。不要直接鍵入答案。使用 Python 的計算功能來完成。
使用 Python 的計算功能來完成。
1英寸(in)=2.54厘米(cm)
1磅(lb)=0.45359237千克(kg)
1 my_height = 74 # inches 2 transfer_height = 2.54 * my_height # cm 3 4 my_weight = 180 # lbs 5 transfer_weight = 0.45359237 * my_weight # kg 6 7 print "He's %d innchess tall, %d cm." % (my_height, transfer_height) 8 print "He's %d pounds heavy, %d kg." % (my_weight, transfer_weight)
五、 補充