# 練習11.提問
叢這節開始我們要恢復之前的腳步。我已經出過很多打印相關的練習,讓你習慣寫簡單的東西,但簡單的東西都有點無聊。我們現在要做的是把數據讀到你的程序里邊去。這可能對你有點難度,你可能一下子不明白,不過你需要相信我,無論如何把習題做了再說。只要做幾個練習你就明白了。
一般軟件做的事情主要就是下面幾條:
> 1. 接收人的輸入.
> 1. 改變輸入.
> 1. 打印改變后的輸入值
到目前為止你只做了打印字符串,但還不會接收或者修改人的輸入。你也許還不知道“輸入(input)”是什么意思。但是在代碼中輸入這個單詞還是跟以前一樣的,所以閑話少說,我們還是開始做點練習看你能不能明白。下一個習題里邊我們會給你更多的解釋。
~~~
print "How old are you?",
age = raw_input()
print "How tall are you?",
height = raw_input()
print "How much do you weigh?",
weight = raw_input()
print "So, you're %r old, %r tall and %r heavy." % (
age, height, weight)
~~~
> **NOTE:**注意我在每行 print 后面加了個逗號(comma) `,`了吧?這樣的話 print 就不會輸出新行符而結束這一行跑到下一行去了。
## 你看到的結果
~~~
$ python ex11.py
How old are you? 38
How tall are you? 6'2"
How much do you weigh? 180lbs
So, you're '38' old, '6\'2"' tall and '180lbs' heavy.
~~~
## 附加題
> 1. 上網查一下 Python 的`raw_input` 實現的是什么功能。
> 1. 你能找到它的別的用法嗎?測試一下你上網搜索到的例子。
> 1. 用類似的格式再寫一段,把問題改成你自己的問題
> 1. 結合轉義序列,想想為什么最后一行`'6\'2"'` 里邊有一個`\'` 序列。單引號需要被轉義,從而防止它被識別為字符串的結尾。有沒有注意到這一點?
## 常見問題
### Q:如何接收用戶輸入的數字,用來進行數學計算?
> 這略微復雜一些,你可以試試用`x = int(raw_input())` 將通過`raw_input()`獲得的字符串轉化成整數。
### Q:我用`raw_input("6'2")`輸入我的身高值,但是它沒有生效。
> 你應該在你的終端里輸入,而不是把輸入值寫到`raw_input()`的括號里。首先請檢查你的代碼是否和我提供的樣例一樣,然后執行這個腳本,當收到提示的時候,再輸入你的身高。
### Q:為什么你在第8行代碼的時候換行了,而沒有讓這句代碼在一行上?
> 這樣做的目的是讓一行代碼少于80個字符,這是一種Python程序員喜歡的代碼風格,如果你喜歡,你也可以把它們放在一行里。
### Q:`input()` 和 `raw_input()`有什么區別?
> 在Python代碼里`input()`方法將會改變你輸入的東西,但是這個方法存在安全問題,請盡量避免使用它。
### Q:什么情況下我應該在輸入的字符串前面加一個`u`, 比如 `u'35'`?
> 在Python中用這種方式告訴你這是一個Unicode編碼的字符串。用`%s`格式可以讓你正常打印。
- 序言
- 前言
- 簡介
- 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)
- 下一步