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!

相关文章推荐

Android开发学习笔记2---HelloWord安卓程序结构简介

一、创建Hello World 1. 打开Eclipse。 2. 点击“File”à“New” à“Project”à“Android ApplicationProject”,创建HelloWor...

C#学习笔记(一)C#程序结构

一、            注释 1.行注释:行注释以“//”开头 2.块注释:块注释以“/*”开始,以“*/”结束,注释内容在它们之间 /*输出“Hello World!”程序 //块注释开...

C++ windows编程学习笔记(一)——程序结构的解析

#include #include #include #include using namespace std; //偶尔测试用的,不过好像没什么反应。。。 LRESULT CALLBACK Win...

(三十一)C语言学习笔记(二)——函数与程序结构

1.extern 在一个源程序的所有文件中,一个外部变量只能在某个文件中定义一次,而其他文件可以通过extern声明来访问它。如在file1中定义变量: int x1 = 5; 在file2中可...
  • whw9255
  • whw9255
  • 2015年07月24日 10:23
  • 226

C语言学习笔记(三)C的程序结构与编译执行过程

C的程序结构与编译执行过程 认识C程序的组成结构,是C开发的基础。 比如,一个简单的C程序: #include   #define PI 3.14  void...

【C++学习笔记】03_C++程序结构

C++程序结构 C++源代码例子: 编写完后更改启动项(该处为002) 按下 或者快捷键F5启动测试。 编译运行:   知识点: 1.      注释: 1.//开头,这一...
  • kkkenty
  • kkkenty
  • 2014年06月19日 20:14
  • 622

JavaWeb学习笔记之tomcat与web程序结构与Http协议

1.常见的服务器 1.1 WebLogic服务器 BEA公司提供,支持j2EE规范 1.2 WebSphere IBM公司提供,支持j2EE规范 1.3 TomCat服务器,Apache开源组织...
  • ladooz
  • ladooz
  • 2013年02月28日 22:45
  • 695

ARM汇编语言学习笔记(一)---ARM汇编的程序结构

0x00 用到的书籍 《Android软件安全与逆向分析》第六章 0x01 原生程序的生成过程笔者是在Linux环境下测试的,详细过程见书中说明需要编译的C语言代码#include int mai...

西门子PLC学习笔记十四-(用户程序结构及执行)

PLC用户程序的总体结构如下图: 1.组织块(OB):操作系统与用户程序的接口,决定用户程序的结构。 组织块是由操作系统调用的,用于控制扫描循环和中断程序的执行,PLC的启动和错误处理,不...

C/C学习笔记/函数与程序结构

C学习笔记 ——函数与程序结构
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python学习笔记(2)程序结构
举报原因:
原因补充:

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