python-02
一、while 循环
标准while条件语句的类似if。再说一次,要使用缩进来分隔每个子代码块
1、从1加到100,计算结果
#!/usr/bin/env python
- i = 1
sum = 0
while i <= 100:
sum += i
i += 1
print "%d" % sum
2、while 语句也可以使用else语句,当循环结束的时候,会执行else语句
#!/usr/bin/env python
sum = 0
i = 1
while i <= 100:
sum += i
i += 1
else:
print "this is %d" % sum
3、如果需要中断循环,使用break。
#!/usr/bin/env python
sum = 0
i = 1
while True:
sum += i
i += 1
if i > 100:
break
print sum
注意 :写程序的时候,应尽量避免重复的代码。
#!/usr/bin/env python
name = raw_input('user:')
while name != 'tom':
name = raw_input('user:')
print "ok"
#!/usr/bin/env python
while True:
name = raw_input('user:')
if name == 'tom':
break
print "ok"
4、continue,在它下面的循环休内的语句将不在执行,返回到循环的开始部分。判断条件为False的情形:空列表、空元组、空字符串、数字0
二、for循环
for循环也可以使用continue、break和else,用法与while一样。
计算从1到100之和
#!/usr/bin/env python
sum = 0
for i in range (1,101):
sum += i
print sum
计算斐波那契数列
#!/usr/bin/env python
a = [0,1,2]
for i in range(8):
a.append(a[-1] + a[-2])
print a
取一个列表或元组的下标和下标所对应的值
#!/usr/bin/env python
alist = [0,1,2]
for i in range(8):
alist.append(alist[-1] + alist[-2])
for i in range(len(alist)):
print "index %d is %d" % (i,alist[i])
//内置方法
for i,j in enumerate(alist):
print "index %d is %d" % (i,j)
1、列表解析
快速的生成从1到4平方的表
[i ** 2 for i in range(1,5)]
快速的生成从1到10中奇数的平列表
[i ** 2 for i in range(1,10) if i % 2 == 1]
快速的生成从1到10中偶数的平列表
[i ** 2 for i in range(1,10) if not (i % 2 == 1)]
python风格
1、起始行
2、文档字符串
3、import模块
4、全局变量定义
5、定义类
6、定义函数
7、主程序代码部分
1、读取文件
打开一个文件进行读取数据。注意打工的文件都需要在使用完后关闭
>>>f = file('f1')
>>> myfile = f.read() //读取文件的全部内容,以字符串的方式赋值给myfile
>>> f.close() //关闭文件
换读取方式
>>> f = file('f1')
>>> myfile = f.readlines()
//读取文件的全部内容,以列表的方式赋值给myfile>>> f.close()
还可以使用
>>> f = file('f1')
>>> myfile = f.readline() //读取文件的一行内容,赋值给myfile,每执行一次f.readline(),就会向下读取一行新内容。
>>> f.close()
2、写入文件
>>> f =file('hello.py','w') //如果hello.py不存则创建,已存在里面的数据会被清空
>>> d.write('this is test.\n') //向文件中写入新数据
>>> f.flush() //向文件写数据,会先到缓存中,如果需要立即刷新到磁盘文件上,需调用flush()函数
>>> f.write('this is test1.\n')
>>> f.close() //关闭文件,也会将缓存中的数据写入到文件
3、追加文件
f = file('hello.py','a') //以追加的方式打开
>>> f.write('aaaaa\n')
>>> f.close()
4、以读写的方式打开
>>> f = file('hello.py','r+')
>>> f.write('hello') //注意:hello将会覆盖文件的前5个字符,因为一开始指针在第一行第一个字符
>>> f.flush()
>>> f.close()
函数
注意:一般来说,函数不会直接输出数据,应该让函数返回值
#!/usr/bin/env python
def xing(num = 40):
print '*' * num
xing()
print 'hello'
xing(50)
定义一个函数
#!/usr/bin/env python
def sumn(num):
sum = 0
for i in range(1,num + 1):
sum += i
return sum
print sumn(100)
注意:使用模块的文件,需要和模块文件在同一目录,否则无法导入。或者可能将模块拷贝到sys.path所定义的目录中
查看sys.path
>>>import sys
>>>sys.path
生成一个8位随机密码
可以使用string.__file__ 查看文件在什么位置,查看里面的内容,两个下划线
#!/usr/bin/env python
import string
import random
passwd = ''
pwd = string.letters + string.digits + string.punctuation
for i in range(8):
passwd += random.choice(pwd)
print passwd
写成函数
#!/usr/bin/env python
import string
import random
passwd = string.letters + string.digits + string.punctuation
def genpwd(num=8):
pwd = ''
for i in range(num):
pwd += random.choice(passwd)
return pwd
if __name__ == '__main__':
print genpwd()
print genpwd(4)
print genpwd(10)
__name__的值就是'__main__'
99乘法表
#!/usr/bin/env python
for i in range(1, 10):
for j in range(1, i+1):
print '%d X %d = %d ' % (j, i, j*i),
写入函数
#!/usr/bin/env python
def cfb(num=4):
for i in range(1, num+1):
for j in range(1, i+1):
print '%d x %d= %d' % (j, i, j*i),
if __name__ == '__main__':
cfb()
cfb(9