标签:des style io ar os 使用 sp for strong
Python学习:终于开始了啊
Date: 2014.10.30
Python 第八章
expr_true_suite
由三部分组成,关键字+表达式+表达式为真或非零时的代码块,注意要有冒号,后面语句需要进行缩进。
例子:都是合法的语句
if (4>2)or(2==1):print 222
for i in range(10):print i
while (4>2):print ("ok"*10) “ok”*10,打印10次
expr_true_suite
else:
expr_false_suite
a = raw_input("input a number ")
a = int(a)
if a > 0:
print a
if (a <= 100):
print "a>=0 and a<100"
else:
print a>100
else:
print "your put is <0"
input输出的结果是一个字符串而不是一个数值,所以必须经过转换,否则就会出现字符串和数字比较的情况。
例子:
if user.cmd == “create”:
action = “create item”
elif users.cmd == “insert”
action = “insert item”
elif users.cmd == “delect”
action = “delect item”
else:
action =”try again!”
a = raw_input("input:")
if a in ("create,insert,delect"):
action = "%s item" % a
else:
action = "try again!"
print action
a = raw_input("input:")
mydict = {"create":"create item",
"insert":"insert item",
"delect":"delect item"}
default = "try again!"
action = mydict.get(a,default)
print action
suite_to_repeat
这样的循环机制常常用在计数循环中,就是设置一个变量,在循环语句中+1,在while中进行判断。
count = 0
while count <9:
print "index is :" , count
count+=1
for iter_var in iterable:
suite_to_repeat
for循环会访问一个可迭代对象中的所有元素,并在所有条目处理结束后结束循环,这个用途很大,可以用在任何需要迭代的地方,尤其是数据库操作,还可以通过迭代器进行下标的获取或者是计数操作。
字符串类型:
for eachletter in "Names":
print "current eachletter:",eachletter
循环字符串中的每一个字母。字母是字符串的元素。这种用法不常见,但是可以作为调试使用,如果出来的是单个字符证明序列里面可能是一个字符串。
(1) 通过序列项迭代:
for each in ["niu","qi","ke"]:
print "%s,hi" % each 注意:在格式化输出的后面没有逗号。
(2) 通过序列的索引进行迭代:直接迭代序列会比通过索引迭代快
for index in range(len(names)):
print "hi,%s" % names[index]
(3) 使用项和索引迭代:使用了enumerate()函数
for index,name in enumerate(names):
print "%d:%s,hi" % (index+1 , name) # 把后面的输入值放到一个元组中。
16. 用于迭代器类型:
range()内建函数有两种:range(start,end,step=1),开始值,终点值和步长,步长默认为1。这样会返回一个包含所有k的列表,其中k: start<=k and k<end ,并且以每次step的数值递增,step不能为0 ,注意的是不包括end值,这样在作为迭代器使用时显得更为合理,因为序列的下标一般是从0开始到length-1.
另外就是range的简略语法:就是默认start为0,或者步长为0 而已。
range(end),range(start,end)只有这几种形式。
17. xrange()函数,在很大范围列表时,使用xrange()会更加合适。其实range()函数返回的是一个列表占用了内存,而xrange()生成的是一个xrange()的对象,不会返回列表。
18. 与序列相关的内建函数:
sorted(),排序
zip()函数,for name,age in zip(names,ages) ,将两个序列连在一起。
19. break语句是结束当前的循环。continue是会忽略下面的循环语句,并回到顶端,但是还是需要进行判断,只有验证成功后才会进行新一次的循环
20. 使用迭代器,可以创造一个迭代器:
myTuple = (123,”vde”,”eee”)
I = iter(mytuple)
next()
for I in seq:
do_something_to(i)
actually:
iter = iter(seq)
while true:
try:
I = iter.next()
except:StopIteration:
break
do_something_to(i)
21. 字典的迭代:dict.iterkeys() , dict.itervalues(),dict.iteritems()
22. for eachline in myfile 访问myfile中的每一行。当然要先open(“filename”).
23. 在迭代可变对象的时候,是可以对可变序列进行修改的:但是除了列表之外其他大多都是不可变的,所以要谨慎使用。
a = ["h123","h234","sss"]
for i in a :
if not i.startswith("h"):
a.remove(i)
print a
24. 列表解析式;
[expr for iter_var in iterable]
iter_var不一定出现在表达式中。
[x**2 for x in range(6)]
扩展后: [expr for iter_var in iterable if cond_expr]
25. 迭代矩阵:两个for很有用,列表解析很厉害
[((x+1),(y+1)) for x in range(3) for y in range(5)]
生成器表达式:(expr for iter_var in iterable if cond_expr)可以看到这个生成的也是一个迭代器对象。
Data:2014.10.31
python学习:第九章
file_object = open(file_name,access_mode = ‘r’,buffering = -1)
这里面的mode指的是打开的模式,r is only read ; w is write and a is 追加;U表示通用换行符支持。 其中,使用 r or U 打开的文件一定是存在的,使用’w’打开的文件若存在先清空,然后重新创建。‘a’模式是为追加数据存在的,即使你seek,文件也会被追加到末尾,如果文件不存在,将会自动创建。要写明文件的扩展名。另外还有“w+”,”r+”等形式。
r+ 形式是在后面append; r 只能读; w 只能写,而且会覆盖前面的数据, a 只能追加。
r+ 可读可写 , w+ 读的时候没有异常,但是不可以读出数据,写的时候会覆盖以前数据。a+读的时候没有异常,但是不可以读出数据,在后面追加。
try:
file = open("C:/unintall.log")
except IOError:
print "i do not find the file"
for eachline in file:
print eachline
数, 将它们写入文件. 行结束符并不会被自动加入, 所以如果需要的话, 你必须在调用writelines()前给每行结尾加上行结束符.
try:
file = open("C:/Users/niuqk/Desktop/test1.txt","r")
except IOError:
print "i do not find the file"
# for eachline in file.readlines():
# print eachline
data = [line.strip("\n") for line in file.readlines()]
print data
在这个例子中没有注释之前,是无法得到想要的效果的,因为file.readlines()一次性读完所有的数据,后面没有数据可读,得出的结果是空的。s
[‘niuqike is ok!niuqike is ok!niuqike is ok!\n‘, ‘niuqike is ok!\n‘, ‘niuqike is ok!\n‘, ‘niuqike is ok!‘]
data = [line.strip(“\n”) for line in file]
data = [line for line in file.readline()]
print data
注意:这个是打印出来的一个个的字母,包含换行符
data = [line for line in file.readlines()]
print data
如果想去掉换行符使用 strip(”\n”)方法
myfile = open(‘C:\new\text.dat‘, ‘w‘)
这样的话会被误认为\n为换行符、\t为制表符、而被转义、
因此可以加上个r、表示raw字符、不进行转义
myfile = open(r‘C:\new\text.dat‘, ‘w‘)
标签:des style io ar os 使用 sp for strong
原文地址:http://www.cnblogs.com/me-qk/p/4101632.html