Chinaunix首页 | 论坛 | 博客

分类: Python/Ruby

2014-02-22 20:56:04

        1、Python启动时,命令行选项以列表的形式存放在sys.argv对象当中,且每个元素是字符串类型。
        >>> type(sys.argv)
        
        >>> sys.argv
        ['']
        在Python的命令行模式下,sys.argv列表当中只有一个元素,且元素为一个空字符串

        2、print 的语法格式怪怪的,看起来不像是函数调用?
        print "the values are", x , y , z 该print语句要对四个对象进行打印输出。对每个对象执行str()函数,生成输出字符串;然后这些字符串会连接在一起(中间自动加空格隔开),从而得到最后要输出的字符串,至于要输出到哪里,那么跟sys.stdout对象所关联的文件相关,默认为标准输出。
        一时间还想不出如何利用sys.stdout来替代print,感觉到print的一点点好。
        注意:print默认在输出字符串的阿最后会添加一个换行符号,如果不需要的花,可以这样print "the values are", x , y , z , 加个逗号.
        
        3、在Python中如何进行格式化输出呢? 
        
以C语言的思维,函数sys.stdout.write应该支持类似的sys.stdout.write("nihao %d", 10)操作,引发TypeError: function takes exactly 1 argument (2 given)错误,可惜不是。
        方法一:利用取模运算符(s % d)生成格式化的字符串。s是字符串,d是一个元组或映射对象
                   %后跟转换字符,这些转换字符的意义与printf中的差不多,主要有s, d, u, x, f, c等。参考《Python参考手册》57页有更加详细的修饰。
                    >>> x = "a is %d" % 10
                    >>> x
                    'a is 10'
                    所以应该利用sys.stdout.write("a is %d" % 10)进行格式化输出,或者print "a is %d" % 10
        方法二:高级字符串格式化
                    参考《Python参考手册》,反正看着比较麻烦一点,先不管了。

        4、如何一个特定文件进行读写操作呢?
                    a、open操作,有两个函数内置函数open和os.open.  网上查了一下:open实现用的是fopen(3) ,os.open就是简单的对open(2)的封装。顿时明白了。
                    b、read、write、close等操作,这些函数并不是单独存在,而是作为open创建的对象的实例方法而存在了。
                    >>> sys.stdout = pp
                    >>> sys.stdout.write('12345')

        5、字符编码问题。
                    在Python中要想输入汉字,得加一行注释。-*- coding:utf8 -*-。这时候也能利用print输出汉字。
                     有部分内容,等到下次阅读再解决这个问题吧。

        6、其它问题。
                    如果要写一个像样的程序,就需要考虑如何解析它的各个参数的问题。可以考虑使用optparse模块。
                    raise SystemExit(1)     它的语法结构和含义是什么? 看来还有异常部分要看一下。
阅读(947) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~