格式化:
%d : 整數(shù)
%f : 浮點數(shù)
%x : 十六進制整數(shù)
%r : 不管什么格式都打印出來。
%s : 格式化字符串
如果碰到非ascii
碼梳猪,需要加一句注釋:
# -- coding: utf-8 --
轉(zhuǎn)義字符:
\ 代表 \
%%
代表 %
raw_input()
:
直接讀取控制臺的輸入镊靴,讀取的變量永遠以字符串的形式返回
一定要用自然字符串處理正則表達式盾致,否則會需要很多反斜杠照弥。例如言津,后向引用可以寫成'\\1'
或r'\1'
參數(shù)攻人、解包、變量
from sys import argv
script,first,second,third = argv
argv
是所謂的參數(shù)變量(argument variable)
悬槽。在命令行中必須傳入三個參數(shù)怀吻。
否則會提示:
ValueError: need more than 3 values to unpack
讀取文件
from sys import argv
script,filename = argv
txt = open(filename)
print txt.read
- close – 關(guān)閉文件。
- read – 讀取文件內(nèi)容陷谱。你可以把結(jié)果賦給一個變量烙博。
- readline – 讀取文本文件中的一行。
- truncate – 清空文件烟逊,請小心使用該命令渣窜。
- write(stuff) – 將 stuff 寫入文件。
from sys import argv
from os.path import exists
script,from_file,to_file = argv
input = open(from_file)
indata = input.read()
print "Does the output file exists? %r" %exists(to_file)
output = open(to_file,'w')#w is key
output.write(indata)
output.close()
input.close()
函數(shù)宪躯、變量
def print_two(*args):
arg1,arg2 = args
print "arg1: %r,arg2: %r"%(arg1,arg2)
print_two("zed","shaw")
循環(huán)和列表
fruits = ['apples','oranges','pears','apricots']
for fruit in fruits:
print"a fruit of type: %s" % fruit
for i in range(0,6)乔宿;
elements.append(i)
debug小技巧
- 最好的調(diào)試程序的方法是使用 print 在各個你想要檢查的關(guān)鍵環(huán)節(jié)將關(guān)鍵變量打印出來,從而檢查哪里是否有錯访雪。
- 讓程序一部分一部分地運行起來详瑞。不要等一個很長的腳本寫完后才去運行它。寫一點臣缀,運行一點坝橡,再修改一點。
mystuff.append('hello')
的工作原理
-
Python
看到你用到了mystuff
精置,于是就去找到這個變量计寇。也許它需要倒著檢查看你有沒有在哪里用 = 創(chuàng)建過這個變量吃环,或者檢查它是不是一個函數(shù)參數(shù)怜械,或者看它是不是一個全局變量。不管哪種方式氮昧,它得先找到mystuff
這個變量才行赖阻。 - 一旦它找到了
mystuff
蝶押,就輪到處理句點. (period)
這個操作符,而且開始查看mystuff
內(nèi)部的一些變量了火欧。由于mystuff
是一個列表棋电,Python
知道mystuff
支持一些函數(shù)茎截。 - 接下來輪到了處理
append
。Python
會將“append”
和mystuff
支持的所有函數(shù)的名稱一一對比离陶,如果確實其中有一個叫append
的函數(shù)稼虎,那么Python
就會去使用這個函數(shù)。 - 接下來
Python
看到了括號(
(parenthesis) 并且意識到, “噢招刨,原來這應(yīng)該是一個函數(shù)”,到了這里哀军,它就正常會調(diào)用這個函數(shù)了沉眶,不過這里的函數(shù)還要多一個參數(shù)才行。 - 這個額外的參數(shù)其實是……
mystuff
! 我知道杉适,很奇怪是不是谎倔?不過這就是Python
的工作原理,所以還是記住這一點猿推,就當它是正常的好了片习。真正發(fā)生的事情其實是append(mystuff, 'hello')
,不過你看到的只是mystuff.append('hello')
蹬叭。
物以類聚
class TheThing(object):
def __init__(self):
self.number = 0
def add_me_up(self,more)
self.number += more
return self.number
a = TheThing()
print a.add_me_up(20)
print a.number
使用 class Name(object)
的方式定義 class