python-02

一、while 循环
标准while条件语句的类似if。再说一次,要使用缩进来分隔每个子代码块
1、从1加到100,计算结果
  1. #!/usr/bin/env python
  2. i = 1
  3. sum = 0

  4. while i <= 100:
  5. sum += i
  6. i += 1
  7. print "%d" % sum
2、while 语句也可以使用else语句,当循环结束的时候,会执行else语句
  1. #!/usr/bin/env python
  2. sum = 0
  3. i = 1
  4. while i <= 100:
  5. sum += i
  6. i += 1
  7. else:
  8. print "this is %d" % sum
3、如果需要中断循环,使用break。
  1. #!/usr/bin/env python
  2. sum = 0
  3. i = 1
  4. while True:
  5. sum += i
  6. i += 1
  7. if i > 100:
  8. break
  9. print sum

注意 :写程序的时候,应尽量避免重复的代码。
  1. #!/usr/bin/env python
  2. name = raw_input('user:')
  3. while name != 'tom':
  4. name = raw_input('user:')
  5. print "ok"

  6. #!/usr/bin/env python
  7. while True:
  8. name = raw_input('user:')
  9. if name == 'tom':
  10. break
  11. print "ok"
4、continue,在它下面的循环休内的语句将不在执行,返回到循环的开始部分。判断条件为False的情形:空列表、空元组、空字符串、数字0

二、for循环
for循环也可以使用continue、break和else,用法与while一样。
计算从1到100之和
  1. #!/usr/bin/env python
  2. sum = 0
  3. for i in range (1,101):
  4. sum += i
  5. print sum
计算斐波那契数列
  1. #!/usr/bin/env python
  2. a = [0,1,2]
  3. for i in range(8):
  4. a.append(a[-1] + a[-2])
  5. print a

取一个列表或元组的下标和下标所对应的值
  1. #!/usr/bin/env python
  2. alist = [0,1,2]
  3. for i in range(8):
  4. alist.append(alist[-1] + alist[-2])

  5. for i in range(len(alist)):
  6. print "index %d is %d" % (i,alist[i])
  7. //内置方法
  8. for i,j in enumerate(alist):
  9. 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、读取文件
打开一个文件进行读取数据。注意打工的文件都需要在使用完后关闭
  1. >>>f = file('f1')
  2. >>> myfile = f.read()    //读取文件的全部内容,以字符串的方式赋值给myfile
  3. >>> f.close()            //关闭文件
换读取方式
  1. >>> f = file('f1')
  2. >>> myfile = f.readlines()    //读取文件的全部内容,以列表的方式赋值给myfile
  3. >>> f.close()
还可以使用
  1. >>> f = file('f1')
  2. >>> myfile = f.readline()   //读取文件的一行内容,赋值给myfile,每执行一次f.readline(),就会向下读取一行新内容。 
  3. >>> f.close()
2、写入文件
  1. >>> f =file('hello.py','w')        //如果hello.py不存则创建,已存在里面的数据会被清空
  2. >>> d.write('this is test.\n')    //向文件中写入新数据
  3. >>> f.flush()            //向文件写数据,会先到缓存中,如果需要立即刷新到磁盘文件上,需调用flush()函数
  4. >>> f.write('this is test1.\n')
  5. >>> f.close()        //关闭文件,也会将缓存中的数据写入到文件
3、追加文件
  1. f = file('hello.py','a')        //以追加的方式打开
  2. >>> f.write('aaaaa\n')
  3. >>> f.close()

4、以读写的方式打开 
  1. >>> f = file('hello.py','r+')
  2. >>> f.write('hello')        //注意:hello将会覆盖文件的前5个字符,因为一开始指针在第一行第一个字符
  3. >>> f.flush()
  4. >>> f.close()

函数
注意:一般来说,函数不会直接输出数据,应该让函数返回值
  1. #!/usr/bin/env python
  2. def xing(num = 40):
  3. print '*' * num
  4. xing()
  5. print 'hello'
  6. xing(50)
定义一个函数
  1. #!/usr/bin/env python
  2. def sumn(num):
  3. sum = 0
  4. for i in range(1,num + 1):
  5. sum += i
  6. return sum
  7. print sumn(100)
注意:使用模块的文件,需要和模块文件在同一目录,否则无法导入。或者可能将模块拷贝到sys.path所定义的目录中
查看sys.path
>>>import sys
>>>sys.path

生成一个8位随机密码
可以使用string.__file__         查看文件在什么位置,查看里面的内容,两个下划线
  1. #!/usr/bin/env python
  2. import string
  3. import random
  4. passwd = ''
  5. pwd = string.letters + string.digits + string.punctuation
  6. for i in range(8):
  7. passwd += random.choice(pwd)
  8. print passwd
写成函数
  1. #!/usr/bin/env python
  2. import string
  3. import random
  4. passwd = string.letters + string.digits + string.punctuation
  5. def genpwd(num=8):
  6. pwd = ''
  7. for i in range(num):
  8. pwd += random.choice(passwd)
  9. return pwd
  10. if __name__ == '__main__':
  11. print genpwd()
  12. print genpwd(4)
  13. print genpwd(10)
__name__的值就是'__main__'


99乘法表
  1. #!/usr/bin/env python
  2. for i in range(1, 10):
  3. for j in range(1, i+1):
  4. print '%d X %d = %d ' % (j, i, j*i),
  5. print
写入函数
  1. #!/usr/bin/env python
  2. def cfb(num=4):
  3. for i in range(1, num+1):
  4. for j in range(1, i+1):
  5. print '%d x %d= %d' % (j, i, j*i),
  6. print
  7. if __name__ == '__main__':
  8. cfb()
  9. cfb(9





posted @ 2016-12-19 14:18  Final233  阅读(180)  评论(0编辑  收藏  举报