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) 它的语法结构和含义是什么? 看来还有异常部分要看一下。
阅读(1039) | 评论(0) | 转发(0) |