python生产随机数案例

法1:

list =list(string.lowercase + string.uppercase) + [str(i) for i in range(10)]
FH=('!','@','#','$','%','&','_')
for f in FH:
list.append(f)
num = random.sample(list,10)
str=''
value= str.join(num)
if not value[0].isdigit():
print value

 

    Python 有办法将任意值转为字符串:将它传入repr() 或str() 函数。

    函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式

(如果没有等价的语法,则会发生SyntaxError 异常) 某对象没有适于人阅读的解释形式的话, str() 会返回与repr()

   等同的值。很多类型,诸如数值或链表、字典这样的结构,针对各函数都有着统一的解读方式。

   字符串和浮点数,有着独特的解读方式。

法2:
import random,string

def GenPassword(lenght):
numOfNum = random.randint(1,lenght-1)
numOfLetter = lenght - numOfNum
slcNum = [random.choice(string.digits) for i in range(numOfNum)]
slcLetter = [random.choice(string.ascii_letters) for i in range(numOfLetter)]
slcChar = slcNum + slcLetter
random.shuffle(slcChar)
genPwd = "".join([i for i in slcChar])
return genPwd

if __name__ == '__main__':
print GenPassword(6)

 

法3:

import random,string

def rand_str(num,lenght=7):
   f=open('Activation_code.txt','wb')
   for i in range(num):
      chars = string.letters + string.digits
      s = [random.choice(chars) for i in range(lenght)]
      f.write("".join(s)+'\r\n')
print 'Done!'
f.close()

if __name__ == '__main__':
rand_str(200)

=============知识点==============
1、 l = [random.choice(range(n)) for i in range(N)]
大约可以解释成:
I = []
for i in range(N):
I.append(random.choice(range(n))) 
In [84]: [x**2 for x in range(10)]
Out[84]: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
 
In [85]: vec=[2,4,6]
 
In [86]: [2*x for x in vec if x>3]
Out[86]: [8, 12]
 
In [87]: [2*x for x in vec]
Out[87]: [4, 8, 12]
 
2、 random.choice
random.choice从序列中获取一个随机元素。其函数原型为:random.choice(sequence)。参数sequence表示一个有序类型。这里要说明一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。有关sequence可以查看python手册数据模型这一章。下面是使用choice的一些例子:
print random.choice("学习Python")
print random.choice(["JGood","is","a","handsome","boy"])
print random.choice(("Tuple","List","Dict"))
print random.choice("学习Python") print random.choice(["JGood", "is", "a", "handsome", "boy"]) print random.choice(("Tuple", "List", "Dict"))

 

3、缺省参数
调用函数时,缺省参数的值如果没有传入,则被认为是默认值。下例会打印默认的age,如果age没有被传入:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#可写函数说明
def printinfo( name, age = 35 ):
   "打印任何传入的字符串"
   print "Name: ", name;
   print "Age ", age;
   return;
 
#调用printinfo函数
printinfo( age=50, name="miki" );
printinfo( name="miki" );
以上实例输出结果:
Name:  miki
Age  50
Name:  miki
Age  35
 
4、chars为所有大小写字母和数字的显示
chars=string.letters+string.digits
print chars显示
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
posted @ 2017-07-18 10:46  有肉的三明治  阅读(683)  评论(0编辑  收藏  举报