Python-实现随机生成指定数量字符串的函数(方法)-记面试问题2

问题解析:函数有一参数x,函数需返回数量为x的随机字符的字符串

思路:笨办法,列出所有可能的字符作为操作对象(字符串,代码里面的方法func暂时只包含英文小写),或者对应的ASCII码值(32~126),然后用for循环执行x次每次随机生成1个字符,用join()方法连接起来返回字符串,或者不用for循环,只用random.sample()方法

 1 import random
 2 import string
 3 
 4 def func(a):
 5     str = 'abcedfghijklmnopqrstuvwxyz'
 6     list = []
 7     for i in range(0,a):
 8         list.append(str[random.randint(0,len(str)-1)])
 9     return ''.join(list)
10 print func(4)
11 #random.randint()函数返回的是制定范围内的随机整型数,str[]取得是字符串(数组)内的字符,''.join()是将list重新拼接成字符串
#join()连接的可以是元素序列、字符串、元组、字典,返回字符串
12 def func_choice(b): 13 list = [] 14 for i in range(0,b): 15 list.append(random.choice(string.ascii_lowercase)) 16 return ''.join(list) 17 print func_choice(5) 18 #random.choice()返回的是某一类型中的随机单个值,可以是字符串 19 def func_choice2(c): 20 list = [] 21 for i in range(0,c): 22 list.append(random.choice(string.letters)) 23 return ''.join(list) 24 print func_choice2(5) 25 26 def func_sample(d): 27 return ''.join(random.sample(string.letters,d)) 28 print func_sample(6) 29 #random.sample()随机返回固定长度的某一类型值 30 def func_num(e): 31 return ''.join(chr(random.randint(33,127)) for i in range(0,e)) 32 print func_num(18)

 

posted @ 2017-08-09 18:06  qiufengsuopo  阅读(431)  评论(0编辑  收藏  举报