python循环语句

while循环语法结构
当需要语句不断的重复执行时,可以使用while循环
while expression:
while_suite
语句ehile_suite会被连续不断的循环执行,直到表达式的值变成0或false
#!/usr/bin/env python
sum100 = 0
counter = 1
while counter <=100:
sum100 += counter
counter += 1
print "result is %d" % sum100

break语句
break语句可以结束当前循环然后跳转到下条语句写程序的时候,应尽量避免重复的代码
在这种情况下可以使用while-break结构
#!/usr/bin/env python
while true
name = raw_input('username:')
if name == 'tom':
break

continue语句
当遇到continue语句时,程序会终止当前循环,并忽略剩余的语句
然后回到循环的顶端,如果仍然满足循环条件,循环体内语句继续执行,否则退出
#!/usr/bin/env python
sum100 = 0
conuter = 0
while counter <=100:
counter += 1
if counter % 2:
counter
sum100 += counter
print "result is %d" % sum100

for循环
python中的for接受可迭代对象(列如序列或迭代器)作为其参数
每次迭代其中一个元素
与while循环一样,支持break,continue,else语句
一般情况下,循环次数未知采用while循环,循环次数已知采用for循环

range函数
for循环常与range函数一起使用,range函数提供循环条件
range函数的完整语法为:
range(start,end,step =1)
>>> range(5)
[0, 1, 2, 3, 4]
>>> range(1,5)
[1, 2, 3, 4]
>>> range(1,5,2)
[1, 3]
>>>

xrange函数
xrange()类似range(),不过当你有一个很大的范围列表时,xrange()可能更为合适,因为它不会再内存里创建列表的完整拷贝
它只被用在for循环中,在for循环外使用它没有意义
它的性能远高出range(),因为它不生成整个列表

斐波那契数列
斐波那契数列就是某个数,总是前两个数之和,比如0,1,1,2,3,5,8
使用for循环和range函数编写一个程序,计算有10个数字的斐波那契数列
改进程序,要求用户输入一个数字,可以生成用户需要长度的斐波那契数列
#!/usr/bin/env python

fib = [0, 1,]
num = int(raw_input("number"))
for i in range(num -2):
fib.append(fib[-1] + fib[-2])
print fib
乘法口诀表
#!/usr/bin/env python
for i in range(1,10):
for j in range(1,i+1):
print "%sx%s=%s" % (j, i, i*j),
print

列表解析
它是一个非常有用,简单,而且灵活的工具,可以用来动态的创建列表
语法:
[expr for iter_var in iterable]
这个语句的核心是for循环,它迭代iterable对象的所有条目
expr应用于序列的每个成员,最后的结果值是该表达式产生的列表
>>> ['hail hydra' for i in range(2) ]
['hail hydra', 'hail hydra']

——————————————————————————————————————————————————————————————————————————————
文件对象

文件对象访问模式
r:读方式打开(文件不存在则报错)
w:写方式打开(文件存在则清空,不存在则创建)
a:追加模式打开(必要时创建新文件)
r+:读写模式打开
w+:读写模式打开
a+:读写模式打开

文件打开方式
open及file内建函数
作为打开文件之门的钥匙,内建函数open()以及file()提供了初始化输入/输出(I/O)操作的通用接口
成功打开文件后会返回一个文件对象。否则引发一个错误
open()方法和file()方法可以完全相互替换
基本语法
file_object = open(file_name,access_mode'r',buffering=-1)

文件输入
read方法
read()方法用来直接读取字节到字符串中,最多读取给定数目个字节
如果没有给定size参数(默认为-1)或者size值为负,文件将被读取直至末尾
>>> f = open('network.py')
>>> f.read()
'#!/usr/bin/env python\n\nfor i in range(1,10):\n for j in range(1,i+1):\n print "%sX%s=%s" % (j, i, i*j),\n print '
>>> f.close()(关闭的意思)

文件输出
write方法
write()内建方法功能与read()相反,它把含有文本数据或二进制数据块的字符串写入到文件中去
写入文件时,不会自动添加行结束标志,需要手工输入
>>> f = open('network.py', 'w')
>>> f.write()
>>> f.write('hail hydra')
>>> f.flush()

writelines方法
针对列表的操作,它接受一个字符串列表作为参数,将他们写入文件
行结束符并不会被自动加入,所以如果需要的话,必须在调用writelines()前给每行加上结束符
>>> f.writelines(['hail hydra \n','hail hydra \n'])
>>> f.close()

模拟cp操作
#!/usr/bin/env python

f1 = open('/bin/ls')
f2 = open('/root/ls','w')

data = f1.read()
f2.write(data)

f1.close()
f2.close()

——————————————————————————————————————————————————————————
函数

创建函数
函数是用def语句来创建的,语法如下
def function_name(arguments):
"function_documentation_string"
function_body_suite
标题行由def关键字,函数的名字,以及参数的集合组成
def子句的剩余部分包括了一个虽然可选但是强烈推荐的文档字串和必须的函数体

调用函数
同大多数语言相同,python用一对圆括号调用函数,如果没有圆括号,只是对函数的引用
>>> def foo():
... print 'hydra'
...
>>> foo()
hydra
>>> foo
<function foo at 0x7f45678c5c80>

函数的返回值
多数情况下,函数并不直接输出数据,而是向调用者返回值
函数的返回值使用return关键字,没有return的话,函数默认返回none
>>> def foo():
... res = 3+4
...
>>> i = foo()
>>> print i
None

函数参数
形式参数
函数定义时,紧跟在函数名后(圆括号内)的参数被称呼为形式参数
简称形参,由于它不是实际存在变量,所以又称之为虚拟变量

实际参数
在主调函数中调用一个函数时,函数名后面括号中的参数(可以是一个表达式)称为实际参数,简称实参

传递参数
调用函数时,实参的个数需要与形参个数一致,实参将依次传递给形参

位置参数
与shell脚本类似,程序名以参数都以位置参数的方式传递给python程序
使用sys模块的argv列表接收

默认参数
默认参数就是声明了默认值的参数,因为给参数赋予了默认值,所以在函数调用时,不向该参数传入值也是允许的

——————————————————————————————————————————————————————————————————
模块
模块是从逻辑上组织python代码的形式,当当代码量变得相当大的时候,最好把代码分成一些有组织的代码段,
前提是保证它们的彼此交互,这些代码片段相互间有一定的联系,可能是一个包含数据成员和方法的类
也可能是一组相关但彼此独立的操作函数

创建模块
模块物理层面上组织模块的方法是文件,每一个以.py作为结尾的python文件都是一个模块
模块名称切记不要与系统中已存在的模块重名,模块文件名字去掉后面的扩展名.py 即为模块名

导入模块
使用impo导入模块,模块被导入后,程序会自动生成pyc的字节码文件以提升性能
模块属性通过 "模块名.属性" 的方法调用,如果仅需要模块中的某些属性,也可以单独导入

加载模块
一个模块只被加载一次,无论它被导入多少次,只加载一次可以阻止多重导入时代码被多次执行
如果两个文件相互导入,防止了无限的相互加载
模块加载时,顶层代会自动执行,所以只将函数放入模块的顶层是良好的编程习惯

模块导入的特性
模块具有一个_name_特殊属性,当模块文件直接执行时,_name_的值为'_main_'
当模块被另一个文件导入时,_name_的值就是该模块的名字

python 循环语句 函数 模块的更多相关文章

  1. Python循环语句,对象

    Python循环语句,对象 案例1:斐波那契数列 案例2:模拟cp操作 案例3:生成8位随机密码 1 案例1:斐波那契数列 1.1 问题 编写fib.py脚本,主要要求如下: 输出具有10个数字的斐波 ...

  2. jmeter数据库,charles抓包,Python循环语句

    jmeter数据库,charles抓包,Python循环语句 一.Jemeter数据库 添加jar包数据库 jemeter=>浏览 添加JDBC Connection Configuration ...

  3. Python import语句导入模块语法[转]

    Python import语句导入模块语法 社区推荐:掘金是国内最活跃的技术社区,我们每日有优质Python开发实例分享,海量python开源库推送.来掘金,和更多懂技术的小伙伴交流.   pytho ...

  4. python循环语句详细讲解

    想必大家都知道python循环语句吧,可以python循环语句有多种,比如for循环.while循环.if.else等等,   我们可以通过设置条件表达式永远不为 false 来实现无限循环,实例如下 ...

  5. Python 循环语句(break和continue)

    Python 循环语句(break和continue) while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出 ...

  6. Python循环语句及函数的定义

      循环语句¶ 重复执行某一个固定的动作或者任务 语法 for 变量 in序列: 语句1 语句2 ..... In [2]: # 列表知识只是以后会讲 # 比如[1,2,3,4,5,6,7] list ...

  7. python基础14 ---函数模块5(模块和包)

    模块与包 一.模块 1.模块是怎么诞生的. 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护.为了编写可维护的代码,我们把很多函数分组,分别放到 不同的文 ...

  8. Python循环语句代码详解:while、for、break

    1 while循环 循环语句是程序设计中常用的语句之一.任何编程语言都有while循环,Python也不例外.while循环的格式如下所示.  while(表达式):       -   else:  ...

  9. Python循环语句

    1.Python循环类型 1.while循环:在某条件下,循环执行某段程序 a. while语句有两个重要命令:continue,break来跳出循环. continue用来跳出该次循环 break用 ...

随机推荐

  1. Using $this when not in object context in

    错误信息:$this引用没有上下文 原因:在PHP5中,static声明的静态方法里不可以使用$this 需要使用self来引用当前类中的方法或是变量. 引用的方法里不可以带$this(示例代码中为g ...

  2. 第一章 C++基本认识

    1.使用visual studio时让程序暂停,在return前加上这个: char response; std::cin >> response; 2.c++程序开发流程 3.变量名的命 ...

  3. Array.prototype鲜为人知的事实

    // constructor 属性是每个具有原型的对象的原型成员. // 这包括除 Global 和 Math 对象之外的所有内部 JavaScript 对象. // constructor 属性包含 ...

  4. COGNOS安装与发布报表步骤

    1. 安装 1.1安装前准备 安装COGNOS需要先安装好iis和sql Server(因为我们用的数据库系统就是SQLServer). 1.2安装过程 1)    找到BI Server文件 2)  ...

  5. ABP官方文档翻译 9.2 Entity Framework Core

    Entity Framework Core 介绍 DbContext 配置 在Startup类中 在模块PreInitialize方法中 仓储 默认仓储 自定义仓储 应用程序特定基础仓储类 自定义仓储 ...

  6. 700名黑客无法攻破Trillium安全防护软件 欲以网络安全险获利

    盖世汽车讯 据外媒报道,在2017 DEF CON黑客大会上,黑客们受邀入侵Car Hacking Village会场内的各类自动驾驶车辆.物联网网络安全公司--Trillium Incorporat ...

  7. notify丢失、虚假唤醒

    notify丢失: 假设线程A因为某种条件在条件队列中等待,同时线程B因为另外一种条件在同一个条件队列中等待,也就是说线程A/B都被同一个Object.wait()挂起,但是等待的条件不同. 现在假设 ...

  8. 洛谷 [P1801] 黑匣子

    这道题是一道splay裸题,然而身为蒟蒻的我并不会,所以这道题我维护的是一个大根堆与一个小根堆结合起来的类似沙漏的结构. 本题难点在于询问的不是最大最小值,而是第K小值,所以我们想到了维护这样两个堆, ...

  9. UVa 1378 A Funny Stone Game [博弈论 SG函数]

    A Funny Stone Game 题意: $n \le 23$堆石子,每次选择$i < j \le k$,从$i$拿走1颗$j,k$各放入一颗,不能取就失败.求先手是否必胜以及第一次取的策略 ...

  10. BZOJ 3782: 上学路线 [Lucas定理 DP]

    3782: 上学路线 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 192  Solved: 75[Submit][Status][Discuss] ...