python中遇到的小问题

1. os.system
 
import os

os.system('route xxx.xxx.xxx.xxx')

自己写的一个添加路由表项的小模块,文件名是route.py。

在文件所在目录执行route.py,出现死循环,百思不得其解。

后来发现os.system相当于cmd,优先调用本目录下的程序,于是以上语句调用了route.py,而不是route.exe。

改了文件名后成功。

注意细节,以为戒。

 

2.re.findall

>>> re.findall('([0-9]{1,3}/.){3}/d{1,3}', '0.1.2.3')

['2.']

>>> re.search('([0-9]{1,3}/.){3}/d{1,3}', '0.1.2.3').group(0)

'0.1.2.3'

查了手册,在re的Match Objects的group函数解释中有这样一句话:

(If a group is contained in a part of the pattern that matched multiple times, the last match is returned. )

 

3.list

a[起始序号:终止序号:步长]

如果要逆序排列,只要a[::-1]即可。

如果作为pattern一部分的一个group匹配了多次,将返回最后一个匹配结果。

虽然不是关于findall的,但我想findall可能是调用了group函数返回的。

勉强可以解释,留待以后深究。现在只能先用

re.findall('/d{1,3}/./d{1,3}/./d{1,3}/./d{1,3}', '0.1.2.3')
4. 默认参数只执行一次
def function(item, stuff=[]):
    stuff.append(item)
    print stuff

function(1)
# [1]

function(2)
# [1,2]
因此,不要使用可变对象作为默认参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值