python 循环语句 函数 模块
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 循环语句 函数 模块的更多相关文章
- Python循环语句,对象
Python循环语句,对象 案例1:斐波那契数列 案例2:模拟cp操作 案例3:生成8位随机密码 1 案例1:斐波那契数列 1.1 问题 编写fib.py脚本,主要要求如下: 输出具有10个数字的斐波 ...
- jmeter数据库,charles抓包,Python循环语句
jmeter数据库,charles抓包,Python循环语句 一.Jemeter数据库 添加jar包数据库 jemeter=>浏览 添加JDBC Connection Configuration ...
- Python import语句导入模块语法[转]
Python import语句导入模块语法 社区推荐:掘金是国内最活跃的技术社区,我们每日有优质Python开发实例分享,海量python开源库推送.来掘金,和更多懂技术的小伙伴交流. pytho ...
- python循环语句详细讲解
想必大家都知道python循环语句吧,可以python循环语句有多种,比如for循环.while循环.if.else等等, 我们可以通过设置条件表达式永远不为 false 来实现无限循环,实例如下 ...
- Python 循环语句(break和continue)
Python 循环语句(break和continue) while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出 ...
- Python循环语句及函数的定义
循环语句¶ 重复执行某一个固定的动作或者任务 语法 for 变量 in序列: 语句1 语句2 ..... In [2]: # 列表知识只是以后会讲 # 比如[1,2,3,4,5,6,7] list ...
- python基础14 ---函数模块5(模块和包)
模块与包 一.模块 1.模块是怎么诞生的. 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护.为了编写可维护的代码,我们把很多函数分组,分别放到 不同的文 ...
- Python循环语句代码详解:while、for、break
1 while循环 循环语句是程序设计中常用的语句之一.任何编程语言都有while循环,Python也不例外.while循环的格式如下所示. while(表达式): - else: ...
- Python循环语句
1.Python循环类型 1.while循环:在某条件下,循环执行某段程序 a. while语句有两个重要命令:continue,break来跳出循环. continue用来跳出该次循环 break用 ...
随机推荐
- Docker for Web Developers目录
在OpenStack在私有云占主导定位之后,后起之秀Docker在PaaS平台.CI/CD.微服务领域展露锋芒.作为Web Developers,我们有必要学习和掌握这门技术. 1. 运行第一个Doc ...
- 04_Javascript初步第二天(下)
错误对象 try{ aa();//这是一个未被定义的方法 }catch(e){ alert(e.name+":"+e.message);//输出:ReferenceError:aa ...
- linux下^M问题
^M的原因 Dos.Windows 格式的文件,用 0D 0A (CR+LF)作为换行符 而Unix 的则是以0A(LF) 作为换行符 所以dos 底下的文本文件到了unix的话,换行符就会多出来一个 ...
- 嵌套for in循环组合cat方式文件中包含空格问题
关于循环嵌套使用for循环的空格问题 原创不易,转载请注明 需求: 现有两个功文件,需要将文件拼接 [root@localhost ~]# cat name 111 222 223 333 444 5 ...
- JavaSE基础篇—流程控制语句
本章知识点分析: 流程控制语句 1.定义:流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块.流程控 制方式采用结构化程序设计中规定的三种基本流程机构:顺序结 ...
- Node.js系列-express(上)
前言 Node.js系列的第一篇:http,大概描述了通过使用node.js内置的api创建一个服务并监听request实现简单的增删改查.现在,我们就通过通读express官网及使用express框 ...
- 浅谈ES6
ECMAScript6.0(简称ES6)是javaScript语言的下一代标准,已经在2015年6月正式发布了.它的目标,使得javaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言 ...
- 2018Pycharm激活方法
1.将"0.0.0.0 account.jetbrains.com"添加到hosts文件中 2.打开http://idea.lanyus.com/ 3.获取激活码,粘贴到第二个选项 ...
- 关于异步IO与同步IO的写操作区别
最近这两天都在看IO相关的知识点.一开始太凌乱,太杂,不过终于整理清楚了.觉得杂乱是因为一开始以为异步IO等于非阻塞IO,这完全是两个概念, LINUX下的异步IO有两类,一类为glibc AIO,这 ...
- js 面向对象 继承
继承方式有四种: 1.call 2.apply 3.prototype 4.for in call 和 apply 的主要区别: call 传参数只能一个一个的传, apply 因为是用数组,所以可以 ...