zoukankan      html  css  js  c++  java
  • Python 去剑式

    Python 去剑式

    种种变化,用以体演总诀。共有三百六十种变化。

    用以破解普天下各门各派的剑法。「破剑式」虽只一式,但其中于天下各门各派剑法要义兼收并蓄;虽说「无招」却是以普天下剑法之招数为根基,因而其变化之多端不逊于总决式。

    摘自金庸 《笑傲江湖》

    前两章介绍了python的基本的语法格式----代码块的使用和python的简单介绍。

    本章会介绍python的 控制语句的语法形式。

    在任何一种计算机语言中,学会如何声明、使用变量 , 学会如何使用控制语句。做到这两点,就算是入门了。在Python 变量的声明不需要掌握,也就是说:现在了解如何使用控制语句就行了。

    控制语句只有三种:

    循环(while for)、选择(if-elise)、转向(break,continiue)

    实际上,我们使用所有的程序逻辑都是由以上三种语句构成的。这三种语句构成了各种程序。是不是有点像独孤九剑的总诀式----种种变化,用以体演总诀。共有三百六十种变化。

    1条件语句

    1.1 简单条件语句

    if <expression> :

    if_suite # if语句中的代码块

    1.2 if-else结构

    if <expression> :

    if_suite #

    else:

    else_suite ##

    1.3 if-elseif 语句(多重分支判断)

    if <expression>:

    if-suite

    elif <expression>:

    elif--suite

    else:

    else_suite

    1.4 鸡肋部分

    在看条件语句的时候,你也许会问:python有没有 三目运算符 ? 个人一直认为三目运算是一个鸡肋。java和c++都有,但是很少会有人用到。

    python在很长一段时间内是没有三目的。 Guido Van Rossum 本人也是一直拒绝加入这样的功能,因为他认为应该保持代码简单,让程序员不易出错。但是许多年之后,他发现自己错了,主要因为在这几年里人们试着使用and和or来模拟三目运算符,而且大多数都是错误的。于是,他本人给出了一个比较合理的解决方案:

    C?X:Y 是一个三元运算符的表达式。那么,在python中应该写成:

    if C :

    x

    else :

    Y

    答案是错的。

    ----》 Guido Van Rossum 本人觉得正确的应该是:

    X if C else Y ###PS看的是不是比较怪异;

    demo:

    在比较大小的时候:

    res = x if x<y else y

    print res

    clip_image001

    2循环语句

    2.1 while循环

    while语句我就不多说了,使用的形式基本一样。

    while <exp> :

    while-suite

    clip_image002

    clip_image003

    还有一个像C++ 一样的东西:无线循环

    clip_image005

    clip_image007

    2.2 for循环

    在python中for循环和传统的c、C++的for循环(计数器循环)不太一样,它更像是shell脚本或者js中的for-each的迭代循环。(有点像java的增强for循环)

    python中的for接受可迭代对象作为参数,每次迭代其中的一个元素。

    For提供了python中最强大的循环结构。它可以遍历序列的成员,可以用在解析和生成器的表达式中,他会自动的调用迭代器的next()函数。这一点和java的增强for循环是一样的。

    例如:

    在java中是这样写的:

    clip_image009

    在python中是:

    clip_image011

    运行的效果:

    clip_image012

    2.2.1 for使用方法:

    本节叙述一下for的简单使用方法:

    1. 用于序列类型的迭代

    clip_image013

    clip_image014

    clip_image015

    clip_image016

    clip_image017

    clip_image018

    这里需要说明一下:

    len()函数是获取集合的大小。

    Range()用于可以迭代。

    2. 用于迭代器类型

    3. 通过range()函数迭代

    range()提供了两种不同的方法类调用。完整的语法是:
    range(start, end , step=1 )

    step是步长,start是一个是起始,end是结束的

    range(end)

    细说xrange与range

    Xrange类似于range , 不过当你有一个很大范围的;列表时,xrange更为合适。因为Xrange不会在内存里创建列表的完整copy ,他的性能远远高出range,xragne返回的是一个迭代对象。

    两者使用方法相同,不再赘述。

    4. 关于for的总结

    在此希望大家来看看 xrange()和range()函数。。。。。不再赘述。

    Break与continue、pass

    在python中break的作用类似于C、java语言: 用于跳出当前的循环。

    例如:

    而continiue用于终止本次循环,并忽略continiue作用的语句,然后回到循环的顶端。

    例如:

    Pass 语句:

    由于python没有使用传统的{}类标记代码快,所以有些地方在语法上要求要有代码,而python中没有对用的空的代码快或者是; 号 ,如果你在需要写代码快(code block)的地方空着,不写任何语句,python解释器会提示你语法错误。 这就很尴尬了。我的天哪,怎么没有{}和; ,这让我怎么写空语句???

    clip_image019

    没关系,python的设计者早已替你想好了对策: 使用pass语句,他不做任何事情---NOP(No OPeration)。同时pass也可以作为开发的小技巧,标记你后来要完成的代码。

    例如:

    clip_image020

    clip_image022

    再看else

    在python中,else不仅可以与if连用,还可以与while一起使用。

    while expression :

    语句块

    else :

    Else语句块

    再看迭代器

    迭代器是在python2.2的时候添加的功能,他为类序列对象提供了一个类序列的接口。实际上,学过设计模式的我们,应该知道:迭代器模式。

    设计模式中是这样解释的:

    迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。

    当你需要访问一个聚合对象,而且不管这些对象是什么都需要遍历的时候,就应该考虑使用迭代器模式。另外,当需要对聚集有多种方式遍历时,可以考虑去使用迭代器模式。迭代器模式为遍历不同的聚集结构提供如开始、下一个、是否结束、当前哪一项等统一的接口。

    在python中,iter(obj )函数会返回一个迭代期对象。使用next()方法迭代。

    例如:

    clip_image023

    这样会出现异常:

    clip_image025

    在python中,应该这样做:

    clip_image026

    此处使用while+iterate的形式等价与for循环。在java中的for-eache也是如此的。

  • 相关阅读:
    Http的请求协议请求行介绍
    Http概述
    服务器返回的14种常见HTTP状态码
    Tomcat发布项目
    Tomca的启动与关闭
    TomCat概述
    PrepareStatement
    JDBC的工具类
    JDBC的异常处理方式
    ResultSet
  • 原文地址:https://www.cnblogs.com/greentomlee/p/5580050.html
Copyright © 2011-2022 走看看