后段开发工程师面试题(三)

本文探讨了Python2中range和xrange的区别,强调了xrange在处理大型序列时的性能优势。此外,解释了正则表达式中的match和search函数的不同,match仅从字符串开头匹配,而search扫描整个字符串。还讨论了Python中的逻辑运算符'and'和'or'的优先级,并指出x = 1 and 2 or 3的值为2。最后提到了装饰器的作用,它能在不修改函数源代码的情况下,增加函数的功能。同时,挑战了一行代码实现99乘法表的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python2中range和xrange的异同

range
函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列。
range示例:

range(5) 
[0, 1, 2, 3, 4] 
range(1,5) 
[1, 2, 3, 4] 
range(0,6,2)
[0, 2, 4]

xrange
函数说明:用法与range完全相同,所不同的是生成的不是一个数组,而是一个生成器。
xrange示例:

>>> xrange(5)
xrange(5)
>>> list(xrange(5))
[0, 1, 2, 3, 4]
>>> xrange(1,5)
xrange(1, 5)
>>> list(xrange(1,5))
[1, 2, 3, 4]
>>> xrange(0,6,2)
xrange(0, 6, 2)
>>> list(xrange(0,6,2))
[0, 2, 4]

range会直接生成一个list对象;
而xrange则不会直接生成一个list,而是每次调用返回其中的一个值
所以xrange做循环的性能比range好,尤其是返回很大的时候,尽量用xrange吧,除非你是要返回一个列表。

match和search的区别

re.match(pattern, string)  

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。如果是则返回

re.search(pattern, string)  

re.search 扫描整个字符串并返回第一个成功的匹配,否则返回None。

match 和search 的区别
re.match只匹配字符串的开始,如果字符串不符合正则表达式,则匹配失败,函数返回None;
而search匹配的是整个字符串,直到找到一个匹配。否则匹配失败,返回None;

x = 1 and 2 or 3 , x的值为多少?

x的值为2

‘and’、‘or’和‘not’的优先级是not>and>or

因为and运算符必须所有的运算数都是true才会把所有的运算数都解析,并且返回最后一个变量,

而或逻辑(or),即只要有一个是true,即停止解析运算数,返回最近为true的变量

装饰器的作用

在不更改函数的情况下,为函数添加额外的功能。

一行代码写出99乘法表

print('\n'.join(['\t'.join(["%2s*%2s=%2s"%(j,i,i*j) for j in range(1,i+1)]) for i in range(1,10)]))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值