little tricks(持续更新)【python】

python中的list有reverse方法,但是字符串却没有,怎么办呢?

csdn博主有列了几个方法,我觉得第一个最简单直接,str[::-1]搞定。

当然也有一种怪异的方法,我把字符串转为序列reverse一下,再转回来不就好了么....

''.join(list(a_string).reverse()),估计很多人会想到这样,但运行一下报错了,为啥,因为reverse方法并不会返回逆序后的list....

那还是老老实实的建一个临时变量吧。

b = list(a)

b.reverse()

''.join(b)

还有一个很强势的eval函数,我一直被告知不要太使用这个,但没想到这个还是很强的。

我组一个字符串:

a = '3+4*5*6'

eval(a)会直接得到123,666.

就当剧透吧。

程序员的算法趣题的第二题,用这个简直了。

我自己还是在用传统的分类来去解决,结果漏了情况,死翘翘了。

不够书里面的算法看上去真的很不友好。

另外,range这个也是左闭右开。

另外,自己也写了一个十进制转化为2进制和8禁止的方法,给大家贴一下吧。

 1 def convert_two(number):
 2     '''将一个十进制的数转换为一个二进制的数'''
 3     ls = []
 4     while (number//2 != 0):
 5         ls.insert(0, str(number%2))
 6         number = number//2
 7     ls.insert(0, str(number%2))
 8     return ''.join(ls)
 9     
10     
11     
12 def convert_eight(number):
13     '''将一个十进制的数转换为一个二进制的数'''
14     ls = []
15     while (number//8 != 0):
16         ls.insert(0, str(number%8))
17         number = number//8
18     ls.insert(0, str(number%8))
19     return ''.join(ls)

比较坑的是,书中竟然告诉我,python中本来就有这个转换函数,直接调用就好,我一口老血喷了出来!

现在做了2个练习,有一些收获的都会记录下来。

-----------------------------------------------------------------------------------------下一次的分割线

posted @ 2017-10-31 08:51  onhacker  阅读(194)  评论(0)    收藏  举报