标准while条件语句的类似if。再说一次,要使用缩进来分隔每个子代码块
1、从1加到100,计算结果
#!/usr/bin/env python- i = 1
sum = 0while i <= 100:sum += ii += 1print "%d" % sum
2、while 语句也可以使用else语句,当循环结束的时候,会执行else语句
#!/usr/bin/env pythonsum = 0i = 1while i <= 100:sum += ii += 1else:print "this is %d" % sum
3、如果需要中断循环,使用break。
#!/usr/bin/env pythonsum = 0i = 1while True:sum += ii += 1if i > 100:breakprint sum
注意 :写程序的时候,应尽量避免重复的代码。
#!/usr/bin/env pythonname = raw_input('user:')while name != 'tom':name = raw_input('user:')print "ok"#!/usr/bin/env pythonwhile True:name = raw_input('user:')if name == 'tom':breakprint "ok"
4、continue,在它下面的循环休内的语句将不在执行,返回到循环的开始部分。判断条件为False的情形:空列表、空元组、空字符串、数字0
二、for循环
for循环也可以使用continue、break和else,用法与while一样。
计算从1到100之和
#!/usr/bin/env pythonsum = 0for i in range (1,101):sum += iprint sum
计算斐波那契数列
#!/usr/bin/env pythona = [0,1,2]for i in range(8):a.append(a[-1] + a[-2])print a
取一个列表或元组的下标和下标所对应的值
#!/usr/bin/env pythonalist = [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. ') //向文件中写入新数据>>> f.flush() //向文件写数据,会先到缓存中,如果需要立即刷新到磁盘文件上,需调用flush()函数>>> f.write('this is test1. ')>>> f.close() //关闭文件,也会将缓存中的数据写入到文件
3、追加文件
f = file('hello.py','a') //以追加的方式打开>>> f.write('aaaaa ')>>> f.close()
4、以读写的方式打开
>>> f = file('hello.py','r+')>>> f.write('hello') //注意:hello将会覆盖文件的前5个字符,因为一开始指针在第一行第一个字符>>> f.flush()>>> f.close()
函数
注意:一般来说,函数不会直接输出数据,应该让函数返回值
#!/usr/bin/env pythondef xing(num = 40):print '*' * numxing()print 'hello'xing(50)
定义一个函数
#!/usr/bin/env pythondef sumn(num):sum = 0for i in range(1,num + 1):sum += ireturn sumprint sumn(100)
注意:使用模块的文件,需要和模块文件在同一目录,否则无法导入。或者可能将模块拷贝到sys.path所定义的目录中
查看sys.path
>>>import sys
>>>sys.path
生成一个8位随机密码
可以使用string.__file__ 查看文件在什么位置,查看里面的内容,两个下划线
#!/usr/bin/env pythonimport stringimport randompasswd = ''pwd = string.letters + string.digits + string.punctuationfor i in range(8):passwd += random.choice(pwd)print passwd
写成函数
#!/usr/bin/env pythonimport stringimport randompasswd = string.letters + string.digits + string.punctuationdef genpwd(num=8):pwd = ''for i in range(num):pwd += random.choice(passwd)return pwdif __name__ == '__main__':print genpwd()print genpwd(4)print genpwd(10)
__name__的值就是'__main__'
99乘法表
#!/usr/bin/env pythonfor i in range(1, 10):for j in range(1, i+1):print '%d X %d = %d ' % (j, i, j*i),
写入函数
#!/usr/bin/env pythondef 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