Python组合数据类型及数据格式化

《Python高级应用》实验报告

实验名称 : 实验4 组合数据类型 及数据格式化
实验日期 :  4.21

姓 名 : 汪珊珊      
学 号 :   084619248        
班 级 :   计算机192

成 绩 :    
人工智能与信息技术学院
南京中医药大学
实验目的:
(1)掌握集合、元组、列表的操作和应用
(2)掌握字典类型的操作和应用
(3)掌握中英文文本的词频统计方法
(4)熟悉jieba库和wordcloud库的使用
(5)掌握数据格式化的方法和用途
实验内容和要求
1、获得用户输入的不定长度整数N,输出N中所出现的不同数字和。
输入示例:
1234123
输出示例:
10

2、编程实现用户输入N个整数(N不定长度),并得到对应的列表。
1)使用独立函数分别求列表中的数字和以及平均值
2)使用切片法取出列表中间隔3的对应元素。如[1,2,3,4],取出的值为1,4。

3、1)创建字典D={“张三”:88,“李四”:90,“王五”:73,“赵六”:82}
2)向字典中添加键值对“钱七”:90”
3)修改“王五”对应的值为93
4)删除“赵六”对应的键值对

4、在文本中录入一些中英文文章片段,长度不小于200,统计出排名前十的词及其对应的次数。将排名前十的词语使用词云显示。(*(选做)设置词云显示的形状:星型、和平鸽型等)

5、验证书本的自动轨迹绘制代码。

*6、 随机生成100个卡号及相应的随机密码;
1)卡号以6102009开头, 后面3位依次是 (001, 002, 003… 100);
2) 生成各卡号的随机密码,密码是在26个字母大小写和9个数字组成的列表中随机生成的8位密码;
3) 输出卡号和密码信息, 格式如下:
卡号 密码
6102009001 75KDJL8r
提示:随机密码生成代码
import random,string
def gen_Key():
passwds = [] #保存符合要求的密码
count = input(‘请确认要生成几条密码: ‘)
i = 0 #记录符合要求的密码个数
while i < int(count):
passwd = set(random.sample(string.ascii_letters + string.digits,8)) #从字母和数字中随机抽取8位生成密码
if passwd.intersection(string.ascii_uppercase) and passwd.intersection(string.ascii_lowercase) and passwd.intersection(string.digits): #判断密码中是否包含大小写字母和数字
passwds.append(’’.join(passwd)) #将集合转化为字符串
i += 1 #每生成1个符合要求的密码,i加1
return passwds

运行结果(写清题号)
1.获得用户输入的不定长度整数N,输出N中所出现的不同数字和。
输入示例:
1234123
输出示例:
10
n={int© for c in
input(‘Input a number’)}
print(’\n’,sum(n))

2.编程实现用户输入N个整数(N不定长度),并得到对应的列表。
1)使用独立函数分别求列表中的数字和以及平均值
2)使用切片法取出列表中间隔3的对应元素。如[1,2,3,4],取出的值为1,4。

def su(b,m):
sum = 0
for i in range(0, m):
sum += eval(b[i])
return sum
def avg(b,m):
sum = 0
for i in range(0, m):
sum += eval(b[i])
return sum/m
a=input()
b=a.split(" ")
m=len(b)
s=su(b,m)
print(s)
print(s/m)
print(b[0Ⓜ️3])

3.1)创建字典D={“张三”:88,“李四”:90,“王五”:73,“赵六”:82}
2)向字典中添加键值对“钱七”:90”
3)修改“王五”对应的值为93
4)删除“赵六”对应的键值对
d={“张三”:88,“李四”:90,“王五”:73,“赵六”:82}
d[“钱七”]=90
print(d)
d[“王五”]=93
print(d)
del(d[“赵六”])
print(d)

4.在文本中录入一些中英文文章片段,长度不小于200,统计出排名前十的词及其对应的次数。将排名前十的词语使用词云显示。(*(选做)设置词云显示的形状:星型、和平鸽型等)
from wordcloud import WordCloud
import jieba
import numpy
import PIL.Image as Image
#1.将字符串切分
def chinese_jieba(text):
wordlist_jieba=jieba.cut(text)
space_wordlist=" ".join(wordlist_jieba)
return space_wordlist
with open(“test.txt” ,encoding=“utf-8”)as file:
text=file.read()
text=chinese_jieba(text)
#2.图片遮罩层
mask_pic=numpy.array(Image.open(“china.jpg”))
#3.将参数mask设值为:mask_pic
wordcloud = WordCloud(font_path=“C:/Windows/Fonts/simfang.ttf”,mask=mask_pic).generate(text)
image=wordcloud.to_image()
image.show()

5、验证书本的自动轨迹绘制代码。

import turtle
def koch(size,n):
if n==0:
turtle.fd(size)
else:
for angle in [0,60,-120,60]:
turtle.left(angle)
koch(size/3,n-1)
def main():
turtle.setup(600,600)
turtle.speed(0)
turtle.penup()
turtle.goto(-200,100)
turtle.pendown()
turtle.pensize(2)
level=5
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.hideturtle()
turtle.exitonclick()
main()

6、 随机生成100个卡号及相应的随机密码;
1)卡号以6102009开头, 后面3位依次是 (001, 002, 003… 100);
2) 生成各卡号的随机密码,密码是在26个字母大小写和9个数字组3)成的列表中随机生成的8位密码;
输出卡号和密码信息, 格式如下:
卡号 密码
6102009001 75KDJL8r
提示:随机密码生成代码
import random,string
def gen_Key():
passwds = [] #保存符合要求的密码
count = input(‘请确认要生成几条密码: ‘)
i = 0 #记录符合要求的密码个数
while i < int(count):
passwd = set(random.sample(string.ascii_letters + string.digits,8)) #从字母和数字中随机抽取8位生成密码
if passwd.intersection(string.ascii_uppercase) and passwd.intersection(string.ascii_lowercase) and passwd.intersection(string.digits): #判断密码中是否包含大小写字母和数字
passwds.append(’’.join(passwd)) #将集合转化为字符串
i += 1 #每生成1个符合要求的密码,i加1
return passwds
#-
-coding:utf_8-*-
import random,string #调用random、string模块
Card_List = []
for i in range(100):
str = (‘6102009’ + ‘%.3d’ %(i+1))
Card_List.append(str)

Card_Dict = {}.fromkeys(Card_List,’’)
print(‘卡号 密码’)
for k,v in Card_Dict.items():
print(k,v)

src_digits = string.digits #string_数字
src_uppercase = string.ascii_uppercase #string_大写字母
src_lowercase = string.ascii_lowercase #string_小写字母
count = int(input(“请输入生成密码个数:”))

for i in range(count):

#随机生成数字、大写字母、小写字母的组成个数(可根据实际需要进行更改)
digits_num = random.randint(1,6)
uppercase_num = random.randint(1,8-digits_num-1)
lowercase_num = 8 - (digits_num + uppercase_num)

#生成字符串
password = random.sample(src_digits,digits_num) + random.sample(src_uppercase,uppercase_num) + random.sample(src_lowercase,lowercase_num)

#打乱字符串
random.shuffle(password)

#列表转字符串
new_password = ''.join(password)

print(new_password)

实验的体会与建议
1.在生成10个高频词时,打开txt文件存在问题
2.安装各种库的时候也存在一定的问题,按照不同的教程去尝试安装
3.熟悉集合、元组、列表的操作和应用jieba库和wordcloud库的使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值