1. Handling exceptions:
python 2.7.8: https://docs.python.org/2/tutorial/errors.html
2. Python 列表(List):
一些操作和函数:http://www.w3cschool.cc/python/python-lists.html
(1) 列表中的sort函数:
http://gaopenghigh.iteye.com/blog/1483864
http://blog.csdn.net/kevin_darkelf/article/details/8945621
(2) strip,lstrip,rstrip函数剥去字符串中的某些字符
3. Python 字典(Dictionary):
(1) 通过value找key
字典中key的值是唯一的,value的值可以不唯一。可以用如下方法:
<span style="font-size:14px;">dict = {}
dict_key = dict.keys() # return a list
dict_value = dict.values()# return a list</span>
<span style="font-size:14px;">dict_key[dict_value.index(value)]</span>
(2) 判断一个value在不在字典中:
可以把字典中每个key对应的value搜出来存到一个list中(用append累加),最后再看value在不在这个list中
有关字符串、元组、列表、字典: http://pmghong.blog.51cto.com/3221425/1335006
(3) 判断key在不在字典中,某一个元素在不在列表中:
用not in 或者 in
(4) 判断一个列表或者字典是否为空:
dict = {}
list1 = []
if dict:
print “不为空”
if not list1:
print "为空"
4. Python 中的copy,deepcopy:
http://my.oschina.net/taisha/blog/54741
如何你只是单纯的A = B,让A等于B,则你对A修改的时候,B也会被改变,但用copy和deepcopy就不会。
5. Print error message into stderr:
http://stackoverflow.com/questions/5574702/how-to-print-to-stderr-in-python
6. Map函数,可将字符串转成数字
关于这个问题的思路(写给自己):如果当发现有两条线段相交的时候就记录点和边的话不实际,点的记录肯定没有问题,交点和相交的两条线段的四个端点记录下来,但是边的话如果记录下交点到每个端点的边(共四条)的话,当再有线段与这四条任何一条相交的时候,就不好整了,需要新的添加操作和删除操作等等。所以可以在一开始的时候将每条街的每条线段存到一个dictionary里,key是街名,value是线段的list。每次有线段相交,就往相应的list中加点(但要考虑加的这个点是否已存在等问题,也就是交点是否是线段的端点)。这样等最后加完,结果确定了再找出边,就轻松许多了。
感想:用户可能不按你预想的格式输入,他可能忽略了个空格,或没注意多打了个空格,等等,要想尽可能多的情况。