python学习笔记(2)程序结构

原创 2007年09月21日 19:02:00

1. 语句的格式:
    python的程序格式挺有意思。 跟我的写东西的习惯是相似的。 比如我写的这一篇。写一个开头,然后加一个“:”,然后在下一行先写一个Tab建。呵呵。python取消了C的"{","}". 改用强制缩进的办法表示段落的起始。也就是,要注意了,是否缩进可不是可选的,是必需的。是否缩进,意思就变了,大不一样。
   
    python的语句也没有了 ";" 符号。我想作者的目的大约是想让这个语言看起来更自然而不是像C那么的古板。向自然语言一样写程序估计是所有程序员的最高梦想。
   
    注释是#,而不是//. 没有发现对应于/**/的东西。
   
   
2. 各种语句
   
    1. 判断
        if(条件):
            xxxxx
        eif():
            xxxxx
        else:
            xxxxx
           
    2. switch
    3. 循环
        用法基本一样。 只要注意冒号和缩进。不过,python没有do关键字。
        1. while           
        2. for    
           注意第一篇所说的容器的遍历。 那是经常用到的东西。
   
2. 函数
    def 函数名([参数1],[参数2]):  #注意冒号
        a = "你好"       #注意上边所说的缩进问题
      
      
    函数的结尾没有特别的标志,也是通过缩进表示的。
    如果你什么也不想干。想找一个相当于C里边的 ; 语句,那就是 pass 。 呵呵。 这种语句对空函数,空动作是非常有用的:由于python没有花括号代表程序的段落起始,你不能只写了一个函数的头然后就一个语句也不写了。 那会提示错误。这个时候你就要用 pass 语句。 函数至少要有一句话。空函数是不被允许的。
        def 函数名([参数1],[参数2]): 
            pass       #空函数,这个语句用来占位
   
    1. 参数传递:
        参数的传递一般由传值和传址两种。Basic程序里边也曾有过过程的概念。所谓的过程就是没有参数的传递,返回值有没有都可以。python里边没有明确的过程概念。 不过没有参数的函数也可以认为是过程。C里边也是一样。
       
        1. 关键字参数
            所谓的关键字参数就是可以在函数调用的时候不用例会函数定义的参数的顺序,利用函数参数的名字来指定其相应的值。
           >>> def newSort(a1,a2):
             print a2,a1             
             a2=a1
             print a2,a1       
             
            >>> newSort(a2=5,a1=3)
            5 3
            3 3
           
        2. 缺省值参数
            跟C的一样
           
        3. 函数对象
            在python里边没有函数指针的概念。但是,他的函数 和 其他的对象一样都是普通的对象类型。
            例子:
            >>> def fun1():
             print "in fun1"
           
             
            >>> def fun2(argc):
             argc()
           
             
            >>> fun2(fun1)
            in fun1
            >>>
       
    2. 返回值:
        1.  None函数
            相当于C的void 函数。python没有明确的数据类型定义。函数的返回值也就不需要明确的指定返回值的类型。
            例子:
                >>> def hello()
                SyntaxError: invalid syntax
                >>> def hello():
                 print "hello world"
               
                >>> res = hello           #这个得到函数的地址。
                >>> res
                <function hello at 0x00DB27F0>
                >>> res = hello()
                hello world
                >>> res
                >>> print res
                None
                >>> type(res)
                <type 'NoneType'>
               
               
         2. 有返回值
           例子:
                >>> def foo():
                 return "abc","list"   #默认返回的是tuple,list的不可更改版本。
               
                >>> res = foo()
                >>> res
                ('abc', 'list')
                >>> res[0]=1
               
                Traceback (most recent call last):
                  File "<pyshell#5>", line 1, in <module>
                    res[0]=1
                TypeError: 'tuple' object does not support item assignment
                >>> type(res)
                <type 'tuple'>
                >>> def foolist():
                 return ["abc","cee"]  #返回的是列表。
               
                >>> res = foolist
                >>> res
                <function foolist at 0x01671AF0>
                >>> res = foolist()
                >>> res
                ['abc', 'cee']
                >>> res[0]=1              #可以更改。
                >>> res
                [1, 'cee']              
               
       
    3. main函数:
        python的main函数没有像C的那么单独。这么写
        if __name__ == '__main__':
       
        然后运行的时候,程序就运行到底下!
   
    4. 程序运行时得到函数的注释
              
4. 程序的编写
    1. idle.bat
        Python的交互命令行模块能方便地进行小代码调试和学习。
       
        这个是python自己带的。可以编写文件,也可以就像一个控制台似的接收,解释执行命令(看见他到想起了Dos下调试汇编的debug了)。 最大的好处就是,对于短程序,比如几条语句,或者测试小例子,可以非常方便的得到最后的结果。
       
        你在python的安装文件夹里边搜索一下就找到了。上一篇所展示的很多例子都是用他来做的。它使用 “>>>” 做提示符。
       
    2. Komodo
        这个家伙是花钱的。具体价格不知道。可以支持多种脚本语言。 对于python来讲,他的格式控制,关键字提示做的的确是不错,而且像VB一样支持鼠标设置断点。傻瓜型的可视界面非常简单。
   
5. 程序调试及错误处理
    调试:
        1. print,Log
            呵呵。这个倒也不用太多说! 只是想强调一下他的重要程度。 我在前一篇<<关于搜索引擎及其开发>>中提过这个事情!
            print,经典的夹杀法。 不过,这样的脚本程序都需要夹杀的话,我们就需要担忧写这个程序的人的水平了。我们用python本来就是用他的简单,高级,不底层,适合表达自己的算法。夹杀,留给困难的程序吧!
           
        2. 断点,单步跟踪
            idle的单步调式很原始。打开一个文件以后,把主窗口的debuger选择一下,然后可以在文件窗口设置断点,跟踪,不过做的不够好。还是Komodo的方便,而且有快捷键,跟VC调试程序一般无二!不过,还是那句话,得花钱!
           
        3. linux文本模式下的调试办法
             好像没有类似gdb的东西。都是写日志。
   
6. 模块介绍
    1. 常用的模块
        看下边的中文资源
    2. C,C++开发新的模块
        这一部分比较长,大家可以看看下边几片文章。
        http://www.vckbase.com/document/viewdoc/?id=1540
        http://learn.tsinghua.edu.cn:8080/2005212716/html/boost_python.html
        http://dev.csdn.net/article/68/68158.shtm
   
   
7. 中文资源:
    http://man.lupaworld.com/content/develop/python_2_4_tut/html/index.html
    http://www.uplinux.com/download/doc/Python/python2.3tut/tut.html
    http://blog.csdn.net/shagoo/archive/2007/05/17/1613427.aspx
    http://xuzhan.us/12591_95593/    
   
语言只是一个表达方式,决定程序是否优良的都是决定于你的算法文化素质。python?Have fun!

Python学习笔记·程序结构

Python学习笔记·程序结构
  • Maek_Tyx
  • Maek_Tyx
  • 2017年08月30日 14:44
  • 140

python 程序构架浅析

一、概念 定义:通常的 Python 程序的构架是指:将一个程序分割为源代码文件的集合以及将这些部分连接在一起的方法。 python的程序构架可表示为: 一个py...
  • heyabo
  • heyabo
  • 2013年04月16日 10:40
  • 8529

自学Python之Python基础:(三)Python代码结构

在本篇中,你将了解到: 1.关于Python注释的方式。 2.Python中的条件判断:if。 3.使用while进行循环。 4.使用for实现推导式。 5.Python中的各种参数说明。 ...
  • cc_xz
  • cc_xz
  • 2017年12月01日 17:09
  • 138

python之程序结构

1、控制结构 if a>b: #注释 ,多行注释可以用 '''多行注释''' result=a-b elif a...
  • codesnail
  • codesnail
  • 2011年09月17日 16:41
  • 2346

flask大型程序的结构学习中遇到的问题

init_app的作用 在__init__.py文件里面,为为什么实例化flask扩展和初始化flask扩展要分开 (1)python里面对象实例化和初始化的区别 (2)python里...
  • CC__Cloud
  • CC__Cloud
  • 2016年11月28日 08:48
  • 527

Python学习笔记(一)基础语法

Python标识符 在python里,标识符有字母、数字、下划线组成。 在python中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。 python中的标识符是区分大小写的...
  • aa294194253
  • aa294194253
  • 2015年02月15日 10:02
  • 566

《用Python玩转数据》第2周学习笔记(Part1)

1、Python之文件操作:http://blog.chinaunix.net/uid-26602509-id-3503138.html2、正则表达式教程: http://deerchao.net/...
  • chenghit
  • chenghit
  • 2015年11月11日 15:17
  • 1523

caffe学习笔记(2)

caffe学习笔记(2)-视觉层(vision layers) 本文参考博客caffe学习,是根据这篇博客做的学习笔记。详细情况可以参考原博客,真的很赞。 所有的层都具有的...
  • Ddreaming
  • Ddreaming
  • 2016年10月12日 08:44
  • 679

Ardupilot -- APM源码笔记一(重制)~ APM源码基本结构

简单介绍源码的基本结构。
  • qq_36955622
  • qq_36955622
  • 2017年06月14日 14:16
  • 408

Python的代码结构

from:Python控制语句 - 南宫羽香 - 博客园 1.结构化程序设计 结构化程序设计包含三种基本结构:顺序结构、选择结构、循环结构。 1)顺序结构 如图所示,虚线框内是一个顺序结构;其中A和...
  • Real_Myth
  • Real_Myth
  • 2017年03月31日 15:37
  • 585
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python学习笔记(2)程序结构
举报原因:
原因补充:

(最多只允许输入30个字)