Day 4-6, 列印、文件、函數
每天進步一點點。
10. 那是什麼?
轉義序列
nnn"I am 62" tall."nnI am 62" tall.n
11. 提問
接受用戶輸入。
print "How old are you?",nage = raw_intput()n
注意到print後面的逗號了吧?這樣的話print就不會輸出換行符而結束這一行跑到下一行了。
練習1
raw_input接受用戶輸入,並把它當作字元串
練習2
age = raw_input("How old are you?")nnprint "your age is %r" % agen
12. 提示別人
一不小心和習題11.2重複了。。
命令行輸入:
python -m pydoc raw_inputn
pydoc主要用於從python模塊中自動生成文檔,有三種輸出形式:
- 控制台文本
- 本地web頁面
- HTML文件
目前來說上面的命令就夠用了,其他用法可自行百度。
13. 參數、解包、變數
目標:寫一個可以接受參數的python腳本
Python不會一下子將它所有的功能給你,而是讓你需要什麼就引入什麼。
import語句. 是將python的功能引入你的腳本的方法.
這樣可以讓你的程序保持精簡,而後面的程序員看到你的代碼的時候,這些 import可以作為提示,讓他們明白你的代碼用到了哪些功能
=====================
前面我們執行Python腳本的命令為
python ex12.pyn
現在我們想要傳遞幾個值到Python腳本中去,可以直接加在命令後面
python ex13.py value1 value2 value3n
相應的,腳本中添加變數來接收這些值
from sys import argvnnscript, first, second, third = argvn
sys是python內置的一個「庫」,也被稱為「模塊」
argv也是一個變數,它包含了你從命令行中傳遞給python腳本的所有參數
後面,我們用4個變數來「解包」avgv中的值,這樣,每個傳遞進來的值都有一個變數來保存
「解包」,也就是把argv中的東西拆分開,依次分給左邊的變數
14. 提示和傳遞
在需要用戶輸入的地方給一個提示符>
用一個變數把這個提示符存起來,這樣你想修改它的時候就只需要修改一個地方
15. 讀取文件
處理文件的時候請小心,不要把文件弄壞或清空。找一個無關緊要的文件開始練習。
txt = open(filename)nprint txt.read()n
從open獲得的東西是一個file(文件)
第二行執行了file的read命令通過命令行參數或者用戶輸入來獲取文件名,而不是把它寫死在代碼文件中。
read(...)n read([size]) -> read at most size bytes, returned as a string.n
對file執行close命令,處理完文件後將其關閉,這一點很重要。
16. 讀寫文件
- open
- write
- close
#打開文件nprint "Opening the file..."ntarget = open(filename, w)n#寫入文件nline1 = raw_input("line1: ")ntarget.write(line1)ntarget.write(n)n#清空文件,truncate用於截斷文件,可以接受參數size,截斷後只留size大小內容n#不指定size則清空nprint "Truncating the file. Goodbye!"ntarget.truncate()n
寫入中文亂碼?
17. 更多文件操作
把一個文件的內容寫入另外的文件
input = open(from_file)nindata = input.read()nnlen(indata)nexists(to_file)nn# 打開文件,寫模式noutput = open(to_file, w)n# 寫入內容noutput.write(indata)nn# 關閉noutput.close()ninput.close()n
windows下使用type命令顯示文本內容
一行:
open(to_file, w).write(open(from_file).read())n
18. 命名、變數、代碼、函數
函數可以做三樣事情:
- 它們給代碼片段命名,就跟「變數」給字元串和數字命名一樣。
- 它們可以接受參數,就跟你的腳本接受 argv 一樣。
- 通過使用1和2,它們可以讓你創建「微型腳本」或者「小命令」。
以使用 def 新建函數
# this one is like your scripts with argvndef print_two(*args):n arg1, arg2 = argsn print "arg1: %r, arg2: %r" % (arg1, arg2)n
最好函數的名稱能夠體現出函數的功能來。
推薦閱讀:
※如何用python解析json對象(基礎篇)
※[新聞] CPython / 微軟 Pyjion / IBM Python+OMR
※Flask框架從入門到實戰
※python編程基礎(一)
※配置IPython Notebook提供非本地訪問