|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
首先,祝大家“五一劳动节”快乐!!!不知道这个假期大家过的怎么样呢
下面言归正传,由于在测试某些项目的过程中,经常会碰到类似这种的防呆需求:“请输入0~999个字符”,为了测试他的上限值,想写这么一个代码,通过python能够随机生成字符,查找了一些资料,写了如下代码
- import random
- import string
- num =input("请输入字符长度:")
- ran_str = ''.join(random.sample(string.ascii_letters + string.digits, int(num)))
- f = open('test.txt','w')
- f.write(ran_str)
- f.close()
复制代码
但是这个代码有个问题,random.sample(population, k):在一个序列或者集合中选择k个随机元素(),返回由K个元素组成新的列表;(k的值小于population的长度),由于string.ascii_letters + string.digits,一共只有a~z,A~Z,0~9,共计62个字符,一旦输入63那代码就会报错,根本远远不能满足999个字符
请问各位大神有什么更好的思路吗?另外是否能随机生成中文字符呢?
像这样?
- import random as r
- num = int(input("请输入字符长度:"))
- ran_str = ''
- string = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',\
- 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',\
- '0','1','2','3','4','5','6','7','8''9']
- for i in range(num):
- ran_str = ran_str + r.choice(string)
- print(ran_str)
复制代码
|
|