[討論] 黑馬 python 教程 - 01-11 變量的格式化輸出 - 討論區

[討論] 黑馬 python 教程 - 01-11 變量的格式化輸出

文章瀏覽次數 439 文章回覆數 7

Mingo

Mingo圖像(預設)

2021-04-20 20:41:49

From:27.242.168.170

變量的格式化輸出

073 變量的輸入輸出 08 格式化輸出語法介紹

在 Python 中可以使用  print  函數將信息輸出到控制台
如果希望輸出文字信息的同時,一起輸出數據,就需要使用到格式化操作符
print('蘋果單價 9.00 元/斤,購買了 5.00 斤,需要支付 45.00 元')
單價 重量 付款金額 是三個便亮
這三個便亮就要用格式化輸出的方式呈現

%  被稱為 格式化操作符,專門用於處理字符串中的格式
		包含  %  的字符串,被稱為 格式化字符串
		%  和不同的字符連用,不同類型的數據需要使用不同的格式化字符

%s		字符串
%d		有符號十進制整數, %06d  表示輸出的整數顯示位數,不足的地方使用  0  補全
%f		浮點數, %.2f  表示小數點後只顯示兩位
%%		輸出  % 

語法格式如下:
print("格式化字符串" % 變量1)

print("格式化字符串" % (變量1, 變量2...))

格式化輸出的演練

需求

  1. 定義字符串變量  name ,輸出 我的名字叫 小明,請多多關照!
  2. 定義整數變量  student_no ,輸出 我的學號是 000001
  3. 定義小數  price 、 weight 、 money ,輸出 蘋果單價 9.00 元/斤,購買了 5.00 斤,需要支付 45.00 元
  4. 定義一個小數  scale ,輸出 數據比例是 10.00%
074 變量的輸入輸出 09 格式化輸出字符串變量

定義字符串變量  name ,輸出 我的名字叫 小明,請多多關照!

# 先定義姓名
name = "小名"
# 如果你像下方這樣做 那麼姓名會被固定
print("我的名字叫 小明,請多多關照!")
# 所以使用格式化字符串
print("我的名字叫 %s,請多多關照!" % name)
之後只要改變 name 的值輸出的內容就可以跟著改變
075 變量的輸入輸出 10 格式化輸出整數變量

定義整數變量  student_no ,輸出 我的學號是 000001

student_no = 1
# %d 可以格式化有符號的十進至整數
# %06d 如果未滿六位數會以 0 補滿  若超過六位數 則維持原狀
print("我的學號是 %06d" % student_no)
076 變量的輸入輸出 11 格式化輸出浮點型變量

定義小數  price 、 weight 、 money ,輸出 蘋果單價 9.00 元/斤,購買了 5.00 斤,需要支付 45.00 元

price = 9.00
weight = 5.00
money = 45.00
# %f 可以輸出福點數
print('蘋果單價 %f 元/斤,購買了 %f 斤,需要支付 %f 元' % (price , weight , money))
# 我們不需要這麼精細的小數點
# %.2f 代表輸出小數第二位
print('蘋果單價 %.2f 元/斤,購買了 %.2f 斤,需要支付 %.2f 元' % (price , weight , money))
077 變量的輸入輸出 12 格式化輸出%及小結

定義一個小數  scale ,輸出 數據比例是 25.00%

scale = 0.25
# 要輸出 % 你需要使用 %%
print("數據比例是 %.f%%" % scale)
# 這個比例顯然有點問題 我們應該把 scale * 100
print("數據比例是 %.f%%" % scale * 100)
這是重複輸入字符串 當然不是我們要的結果
# 我們應該想到優先及 所以 (scale * 100) 先括起來
print("數據比例是 %.f%%" % (scale * 100))
# 我們只需要小數第二位
print("數據比例是 %.02f%%" % (scale * 100))

根據變亮的類型 使用不同的格式化字符 舊式格式化的關鍵

※最後更新時間:2021-04-21 18:22:54 From:39.13.96.254 By:Mingo

留言

#1

Mingo

Mingo圖像(預設)

2021-04-20 20:49:20

From:27.242.168.170

我覺得格式化輸出其實蠻困難的
事實上 可以選擇把字符串拆成幾個部分
利用 print("xxx",yyy,"xxx") 做拼接應該更簡單

或 之後應該會介紹 format()
不會像現在還需要濟助變亮中的數據類型

#2

特種兵

特種兵圖像(預設)

2021-04-21 09:10:16

From:1.161.136.59

  1. 如要輸出之前演練地的句子
    這句有點怪怪的
  2. # 這個比例顯然有點問題 我們應該把 scle * 100

    變數名稱打錯了

#3

特種兵

特種兵圖像(預設)

2021-04-21 09:13:18

From:1.161.136.59

那是 python 2 的 C style
我覺得 python 3 直接學 fstring 就好了
初期的話就先用逗號隔開就好
format 也可以,但缺點跟 C style 一樣,就是同一件事要想前想後,不像 fstring 一次解決

#4

此篇留言已被刪除。

#5

Maxe

Maxe圖像(預設)

2021-04-21 10:15:25

From:211.23.21.202

看到這裡,不經懷疑,這教學是不是跟不上時代了,應該找新的教學來看才對。
使用以下語法更簡單易讀。
print(f'姓名:{name}\n年齡:{thisYear - birthday}\n背景資料:{getInfo(name)}\n...')

#6

Mingo

Mingo圖像(預設)

2021-04-21 18:18:01

From:39.13.96.254

@Maxe 的確 這個課程是比較舊的版本
可能她的 python 還沒有到 3.6 以上?

#7

cello

cello圖像(預設)

2021-07-13 16:41:24

From:219.85.165.40

有些可惜,不然這位老兄的授課方式還蠻有意思的,我用3.7前面用起來都差不多,這邊的落差就比較大了!