python 产生随机数,随机字符串
import random
#随机整数:
print random.randint(1,50)
#随机选取0到100间的偶数:
print random.randrange(0, 101, 2)
#随机浮点数:
print random.random()
print random.uniform(1, 10)
#随机字符:
print random.choice('abcdefghijklmnopqrstuvwxyz!@#$%^&*()')
#多个字符中选取特定数量的字符:
print random.sample('zyxwvutsrqponmlkjihgfedcba',5)
#多个字符中选取特定数量的字符组成新字符串:
prin ''.join(random.sample(['z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a'], 5))
#随机选取字符串:
print random.choice(['剪刀', '石头', '布'])
#打乱排序
items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print random.shuffle(items)
示例(随机获取验证码),5位验证码,包含整数,大小写字母~
def valdate_code():
res = ''
for i in range(5):
num = random.randint(0, 9)
alpha_lower = chr(random.randint(97, 122)) # 小写字母
alpha_upper = chr(random.randint(65, 90)) # 大写字母
s = random.choice([str(num), alpha_lower, alpha_upper])
res += s
return res
调用结果:
8Rj0x
306GX
下面是实现python字符串反转的四种方法:
1. 切片
def rev(s):
return s[::-1]
这是采用切片的方法,设置步长为-1,也就是反过来排序。
这种方法是最简洁的,也是最推荐的。
2. 这种方法与切片类似,不过比较麻烦
def rev(s):
str0 = ”
l = len(s)-1
while l >= 0:
str0 += s[l]
l -= 1
return str0
这种方法是先设置一个str0的空变量,然后在s中从后往前取值,然后追加到str0中。
3.列表
def rev(s):
a = list(s)
a.reverse()
return ”.join(a)
这种方法是采用列表的reverse方法,先将s转换为列表,然后通过reverse方法反转,然后在通过join连接为字符串。
注意:这里注意区分列表的reverse和sort(或sorted)方法:
reverse是把列表方向排序;
sort(reverse=True)是按照某种顺序方向排序。
example:
>>> a=['a','c','b','d']
>>> b=['a','c','b','d']
>>> a.sort(reverse=True)
>>> b.reverse()
>>> a
['d', 'c', 'b', 'a']
>>> b
['d', 'b', 'c', 'a']
4. reduce
def rev(s):
return reduce(lambda x, y : y + x, s)
阅读(1042) | 评论(0) | 转发(0) |