(1).当"print os.path.dirname(__file__)"所在脚本是以完整路径被运行的, 那么将输出该脚本所在的完整路径,比如:
python d:\pythonSrc\test\test.py
那么将输出 d:\pythonSrc\test
(2).当"print os.path.dirname(__file__)"所在脚本是以相对路径被运行的, 那么将输出空目录,比如:
python test.py
那么将输出空字符串 ......
最近看可爱的python,里面有很多以前没有注意的东西。书是借的,期待到2月27号,社区解除图书静默。
图书大概分了3个部分。第一部分主要是本地编程的过程,第二部分主要是网页编程。第三部分是小纸条,
提供了很多知识点的速记。
以前也上过woodpecker,正如网站上写的,确实很乱。我经常不知道看哪,这个只能多逛。书中提到的一
些工具很好,以前没听过,比较感兴趣。
1.首先是SVN(Subversion)。一个版本管理系统。这个对编程或者做科学工作的人还是很有用的。养成
保存版本的习惯。
2。书中提到的python的精神。KISS--keep it simple and stupid. 非要将python的语法全部学完再来用它解决
问题就本末倒置了。在实战中学习,是最好的方法。ps,有时候不知道该用来干什么,希望能有些题目之类
的来做下。那些合作项目不敢加入啊,老是怕不能胜任,还需要锻炼。
3。使用cmd模块来支持命令行下操作。
或者,对于简单情况使用sys.argv列表加逻辑判断。对于复杂情况使用getopt。
4.中文编码。这部分还不是很懂。
5.epydoc文档生成器。
6.ini格式配置。使用ConfigParser模块。
7.web框架,使用Karrigell。
8。多线程,使用thread ......
8.Python中没有switch语句,可以用if..elif..else语句完成同样的工作(某些场合,使用字典会更加快捷)
9.while语句包含一个else的从句.
10.range向上延伸到第二个数,即它不包含第二个数.
11.使用global语句可以清楚地表明变量是在外面的块定义的. ......
Python支持ascii字符串,unicode字符串,以及各种字符集,那么它们到底各是什么概念,相互之间存在何种关系呢?
在Python中,ascii字符串,即str类型的值,可能用来表示任意的一块存储空间,那么也就是说,这个字符串内部可以是任何值,例如:可见字符组成的字符串,或者一段二进制数据等。unicode字符串,即unicode类型的值。
str与unicode都是字符串的一种,继承于basestring,都是常量,都不可修改。如果修改字符串,那么实际上是产生了一个新的字符串。
字符集是我们所使用的字符编码的集合。字符集对ascii字符串才有意义,因为在python中各种不同字符集的字符串都是用str表示(本质上就是一段存储空间)。最小字符集自然是ascii字符集。然后,对于中文用户,常用字符集是gbk,gb2312,或者gb18030。其中,gb18030是前面两者的超集,也就是说兼容gbk与gb2312的。推荐使用的是gb18030,因为这是新的国家标准。cp936字符集是与gbk相对应的。其他常用的字符集还有utf-8,这个是XML中经常使用的。
有些字符集能表示几乎所有的人类语言字符,例如,utf-8,这也是xml选择其做默认输出字符集的重要原因。于是就存在这样一种转换问题:一段中文字符串,其字符集是gb18030的,如� ......
1.1. 语法
1.1.1. if
>>> x=int(raw_input("please enter an integer:"))
please enter an integer:-8
>>> if x<0:
... print 'negative'
... elif x==0:
... print 'zero'
... else:
... print 'positive'
...
negative
这里有几个知识点需要提醒:
1。和shell中if语句的区别
我们来回顾一下shell中的if语句。
shell中if语句的结构是:
if 表达式
then 命令表
[else]
fi
举个简单的例子:ifsingle
#!/bin/bash
#filename:ifsingle
echo "please enter the first string:"
read word1
echo "please enter the second string:"
read word2
echo "_______________"
if test $word1 = $word2 这里注意$word1和$word2之间的等号前后必须有空格,不然就变成了赋值语句,程序的功能就体现不出来了。
then
echo " the first string is equal to the second string"
fi
echo "the program has finished"
并且if语句可以无限层的嵌套在其他if语句中。
python中的是一个if,elif,else语句实现多路判断
我们同样举一个相似的例子� ......
python_复杂数据类型
python中原生的队列有2种,一种是普通的队列(Queue),一种叫做优先队列(PriorityQueue),即小的先出列。
注意:队列是线程安全的,python 3.0中支持多进程,也有类似的Queue,但不是这个。
1栈、队列、堆
python中原生的队列有2种,一种是普通的队列(Queue),一种叫做优先队列(PriorityQueue),即小的先出列。
注意:队列是线程安全的,python 3.0中支持多进程,也有类似的Queue,但不是这个。
构造函数:
queue.Queue(maxsize)
queue.LifoQueue(maxsize)
queue.PriorityQueue(maxsize)
异常:
queue.Empty
queue.Full
方法:
qsize() 获得队列的大小
put_nowait(item) 入队
get_nowait() 出队
2 集合
创建集合
set(list)
set(tuple)
添加元素:set.add(element)
删除元素:set.remove(elem ......