注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

@fc_lamp

关注Web应用解决方案MySql/PHP/Python一盏名为"飞川"的灯~

 
 
 

日志

 
 

关于Python的流程控制语句  

2011-02-16 16:02:00|  分类: Web技术-Python |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

关于Python的流程控制语句

在开始之前有几点需要说明:

 1  以下所有程序运行版本为 python 3.1.2(版本不同,代码可能无法正常运行,如:输出函数print随版本不同而不同)!

 2  在C、PHP等语言的语法中规定,必须以分号作为语句结束的标识。Python也支持分号,同样用于一条语句的结束标识。但在Python中的分号可以省略,主要通过换行来识别语句的结束

 3 对于Python而言,代码缩进是一种语法,Python语言中没有采用花括号或begin...end...分隔代码块,而是使用冒号和代码缩进来区分代码之间的层次。(即{ -------->:)(另外:每一块中必须得有能执行的语句,不能为空或注释,当然可以使用关键字‘pass’来表示空语句块)

 4   与C、PHP语言不同,Python不支持自增运算符和自减运算符。例如,i++、i--是错误的语句,但是类似i+=1的语句是允许的

 5   python的流程控制语句与C,PHP的有很大程度上不一样(如:表达式两侧的括号也可以省略)。

 6  实质上:python 与 JavaScript非常相似,都是解释执行,而且语法结构也有很多相似之处。

<1>If语句:

a = 23
b = 2
if a == b:
    print ('a == b') #注意:Python 3之后print 成了个内置函数,而不在是语言结构
elifa < b:#(不是elseif)
    print ('a < b') #注意:每一个分块内必须得有相应的能执行的语句(注释也不行),如果要留空,请使用关键字“pass”

else:
    print ('a > b')
print ('Done!')

以上语句注意:

1 elif和else从句都必须在逻辑行结尾处有一个冒号,下面跟着一个相应的语句块(当然还包括正确的缩进)。

2 elif: 不是elseif,事实上把两个相关联的if else-if else语句合并为一个if-elif-else语句。

3 表达式两侧的括号可以省略,一般Python代码中都没有加。

(另外:在Python中没有switch语句。你可以使用if..elif..else语句来实现相同的工作,不过如何实现switch,以后会说到)

类比PHP中:

<?php
$a = 23;
$b = 2;
if ($a==$b):
   echo 'a==b';
elseif ($a < $b):
   echo 'a < b';
else:
   echo 'a >b';
endif;
#或者:
if($a==$b){
   echo 'a==b';
}elseif($a < $b){  #这里elseif 与else if 都可行
    echo 'a < b';
}else{
  echo 'a >b';
}


<2>While语句:

#while
a = 60
running = True #TRUE OR true 都不是合法的
while (running):
    b= int(input('Please input b :'))#在3.0 中版本去掉了raw_input 函数,改用input。
    if (a > b):
        print('a > b')
    elif (a < b):
        running = False #为了避免死循环
        print('a < b')
    else:
        print('a == b')
else:
     print('The while loop is over')
     
print('Done')

以上语句注意:

1 其中else子句可以省略,事实上是else多余的,因为你可以把其中的语句放在同一块(与while相同)中,表达式两侧的括号也可以省略。

2 当条件过多时,一定要注意代码缩进与冒号。

3 循环语句中,不是特殊情况,不要出现死循环

4 注意Python中bool 类型的写法:True ,而TRUE OR true 都是不合法的 

5程序中使用了input()和int()函数,

  input:C语言中使用scanf()和getchar()捕获用户输入,Python也提供了类似功能的函数:input()和raw_input()(不过,3.0过后去掉了raw_input 函数,改用input)。

 int: 程序中使用input函数后返回的一个字符串。但a的值是一个数字,所以我们通过int把这个字符串转换为整数,并把它存储在变量b中。事实上,int是一个类。


<3>For语句

#for
array = range(1,10)
for i in array:
#这里不能加括号eg:(i in array) 这样是错误的
    print (i)
else:
    print ('The for loop is over')

以上语句注意:

1 其中else子句可以省略,事实上是else多余的,但是注意表达式两侧的不能加括号。

2 这里使用了range 函数,产生一个序列 数。用法为:range([start], stop[, step]) step指的是步长。(这与PHP里的range函数用法类似)

3 Python的for循环从根本上不同于C/C++的for循环(Python不支持C/C++的for循环格式)。你可能注意到Python的for循环与PHP(C#)中的foreach循环十分类似。如果你要实现类似C/C++中的for循环功能,如:(实现for(i=0;i<5;i++))  你可这样做:

(1)采用while循环:

i =0    
while i<5:
    print(i)
    i +=1 
#注意python不支持自增运算

(2)采用for + range循环:

for i in range(0,5,1):#这里,最后一个1是步长,即如C++的for变为:for(i=0;i<5,i+=2),则步长就变为2,即可
    print (i)


<4>Break语句(continue)

for i in range(0,5):

    print (i)

    if i >= 3:

        break;

else:

    print('for loop break over666'); #这条语句没有被执行

print ('Out of for')


<5>With语句

with语句支持在由上下文管理器对象控制的运行时上下文中执行的语句:

例如在文件操作中:

with open('test.txt','w') as f:

    f.write('test')

当程序运行离开with语句后面的代码块时,with语句将自动关闭已打开的文件。

又如在线程控制中:

import threading
lock = threading.Lock()
with lock:
    pass

当控制流离开with语句后面的代码块后,自动释放锁。


以上语句注意:

1 当你从 for或while循环中 终止 时,任何对应的循环else块将不执行

continue 用法与C,PHP等语言中的一样。

  评论这张
 
阅读(210)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017