Python---批量生成随机信息

一、实验目的

了解Python标准库string中的字符串常量,熟练运用标准库random中的函数,了解汉字编码格式,熟练掌握文本文件操作方法。

二、实验所用仪器(或实验环境)

Python 3.6及以上版本

三、实验基本原理及步骤(或方案设计及理论计算)

  • 1.了解并搜索常用汉字的Unicode编码表;比如下面的4位十六进制数字表示的Unicode字符’\u7684\u4e00\u4e86\u662f\u6211\u4e0d\u5728\u4eba\u4eec’分别对应的汉字是“的一了是我不在人们”。了解Unicode编码,可以让我们生成想要的姓名和家庭住址。
  • 2.分别实现5个函数,用于随机生成姓名(2-4个汉字)或地址(10-30个汉字),性别(男或者女),年龄(18-99),电话号码(11位),电子邮箱地址(常见域名后缀包括.com,.org,.net,.cn等,可以扩展)。
  • 3.写一个main()函数,将信息写入文件 information.txt。
    1. 打印文件information.txt中的内容。

四、实验数据记录(或仿真及软件设计)

#五个函数:

def char(length):
    name=""
    for i in range(length):
        #4E00-9FA5
        name= name+chr(random.randint(0x4E00, 0x9FA5))
    return  name
#随机生成姓名(2-4个汉字)
print(char(random.randint(2,4)))
#随机生成地址(10-30个汉字)
print(char(random.randint(10,30)))

#性别
def sex():
    all_sex=["\u7537","\u5973"]
    x=random.choice(all_sex)
    return x
print(sex())

#年龄
def age():
    return random.randint(18,99)
print(age())

#电话号码
def phone():
    phone=""
    for i in range(11):
        phone=phone+str(random.randint(0,9))
    return phone
print(phone())

#电子邮箱
def mail(L):
    qianmian=""

    mail_address=["163.com","qq.com","77.cn","qw.cn","fad_a.net","15a.net","4fad5.cn"]
    for i in range(0, L):
        qianmian = qianmian + random.choice(string.ascii_letters + string.digits)
    mail=qianmian+'.'+random.choice(mail_address)
    return mail
print(mail(random.randint(4,10)))
以上运行截图:


输入到一个文件中:
num=int(input("希望生成多少个个人信息:"))
information=[]
for i in range(0,num):
    s=str(char(random.randint(2,4))+","+sex()+","+str(age())+","+phone()+","+char(random.randint(10,30))+","+mail(random.randint(4,10)))+"\n"
    print(s)
    information.append(s)
#print(information[i])

with open("person_information.txt","w",encoding="GBK") as fp1:
    string="Name Sex Age TelNo Address Email \n"
    fp1.write(string)
    for i in range(0,num):
        fp1.write(information[i],)

截图:

在这里插入图片描述

五、实验结果分析及回答问题(或测试环境及测试结果)

本次实验不是很难,但是有一点疑问:
在这里插入图片描述

上面的这段代码在file外可以正常执行,但是
在这里插入图片描述
会出错,找了半天也没发现原因。
最后用列表存储绕过这个错误。

发布了29 篇原创文章 · 获赞 1 · 访问量 934

猜你喜欢

转载自blog.csdn.net/qq_40505187/article/details/105180021
今日推荐