# 練習5.更多的變量和打印
我們現在要輸入更多的變量并且把它們打印出來。這次我們將使用一個叫“格式化字符串(format string)”的東西. 每一次你使用`"` 把一些文本引用起來, 你就建立了一個字符串。字符串是程序將信息展示給人的方式。你可以打印它們,可以將它們寫入文件,還可以將它們發送給網站服務器,很多事情都是通過字符串交流實現的。
字符串是非常好用的東西,所以在這節練習中你將學會如何創建包含變量內容的字符串。使用專門的格式和語法把變量的內容放到字符串里,相當于來告訴 `python`:“嘿,這是一個格式化字符串,把這些變量放到那幾個位置。”
一樣的,即使你讀不懂這些內容,只要一字不差地輸入就可以了。
~~~
my_name = 'Zed A. Shaw'
my_age = 35 # not a lie
my_height = 74 # inches
my_weight = 180 # lbs
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
# this line is tricky, try to get it exactly right
print "If I add %d, %d, and %d I get %d." % (
my_age, my_height, my_weight, my_age + my_height + my_weight)
~~~
> **Warning:**如果你使用了非 ASCII 字符而且碰到了編碼錯誤,記得在最頂端加一行`# -- coding: utf-8 --`。
## 你應該看到的結果
~~~
$ 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_`去掉。確認將每一個地方的都改掉,不只是你使用`=`賦值過的地方。2.試著使用變量將英寸和磅對應轉換成厘米和千克。不要直接鍵入答案。使用 Python 的計算功能來完成。3.在網上搜索所有的 Python 格式化字符。4.試著使用更多的格式化字符。例如 `%r`就是是非常有用的一個,它的含義是“不管什么都打印出來”。
## 常見問題
### Q:我可以定義一個類似`1 = 'Zed Shaw'`的變量嗎?
> 不可以,`1`不是一個合法的變量名.變量需要以字母開頭 ,比如`a1`才是正確的變量命名。
### Q:這些字符`%s`, `%r`, `%d`是做什么的?
> 它們都是“格式化字符串”,你繼續學習下去,就會學到關于它們更多的知識。它們告訴Python 用后面的變量值代替字符串中的符號`%s`。那么什么是“格式化字符串呢”? 我也說不清楚。教你學會編程有一個難題就是想要理解我在說什么,你必須先學會怎樣編程。解決這個難題的辦法就是先按照我的要求做我讓你做的事情,后面會慢慢解釋。如果你遇到一些類似的問題,你可以先記下來,后面我會慢慢解答。
### Q:怎樣生成一個浮點數?
> 你可以像這樣`round(1.7333)` 使用函數`round()`。
### Q:我遇到在這個報錯信息:`'str' object is not callable.`
> 你可能忘記在字符串以及變量之間輸入`%`。
### Q:為什么這個練習對我沒有意義?
> 用你自己的數據修改腳本中的數字,看起來挺奇怪的,但是這些真實的信息能讓這個練習更加真實,而且,你才剛剛開始學習,確實也不會有太大的意義,堅持做更多的練習題,你會有所收獲。
- 序言
- 前言
- 簡介
- 0:安裝和準備
- 1:第一個程序
- 2:注釋和“#”井號
- 3:數字和數學計算
- 4:變量和命名
- 5:更多的變量和打印
- 6:字符串和文本
- 7:更多的打印(輸出)
- 8:打印, 打印
- 9:打印, 打印, 打印
- 10:那是什么?
- 11:提問
- 12:提示別人
- 13:參數, 解包, 變量
- 14:提示和傳遞
- 15:讀文件
- 16:讀寫文件
- 17:更多文件操作
- 18:命名, 變量, 代碼, 函數
- 19:函數和變量
- 20:函數和文件
- 21:函數的返回值
- 22:到目前為止你學到了什么?
- 23:閱讀代碼
- 24:更多的練習
- 25:更多更多的練習
- 26:恭喜你,可以進行一次考試了
- 27:記住邏輯
- 28:布爾表達式
- 29:IF 語句
- 30:Else 和 If
- 31:做出決定
- 32:循環和列表
- 33:while循環
- 34:訪問列表元素
- 35:分支和函數
- 36:設計和調試
- 37:復習符號
- 38:列表操作
- 39:字典,可愛的字典
- 40:模塊, 類和對象
- 41:學會說面向對象
- 42:對象、類、以及從屬關系
- 43:基本的面向對象的分析和設計
- 44:繼承Vs.包含
- 45:你來制作一個游戲
- 46:項目骨架
- 47:自動化測試
- 48:更復雜的用戶輸入
- 49:寫代碼語句
- 50:你的第一個網站
- 51:從瀏覽器獲取輸入
- 52:開始你的web游戲
- 來自老程序員的建議
- 下一步
- 附錄A:命令行教程
- 簡介
- 安裝和準備
- 路徑, 文件夾, 名錄 (pwd)
- 如果你迷路了
- 創建一個路徑 (mkdir)
- 改變當前路徑 (cd)
- 列出當前路徑 (ls)
- 刪除路徑 (rmdir)
- 目錄切換(pushd, popd)
- 生成一個空文件(Touch, New-Item)
- 復制文件 (cp)
- 移動文件 (mv)
- 查看文件 (less, MORE)
- 輸出文件 (cat)
- 刪除文件 (rm)
- 退出命令行 (exit)
- 下一步