6.1 随机密码生成。编写程序,在26个字母大小写和9个数字组成的列表中随机生成10个8位数的密码。代码示例如下:
import random #引入随机库ls = "123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"for i in range(10): for i in range(8): password = random.choice(ls) print("{}".format(password),end="") print()
6.2 重复元素判定。编写一个函数,接受列表作为参数,如果一个元素在列表中出现不止一次,返回True,但不要改变原来列表的值。同时调用并输出结果:代码示例如下:
6.3 重复元素判定续。利用集合的数据去重,改上面代码。完整如下:
#方法一:def repeat(ls):#定义一个判断元素函数 ls = ls.split(' ') if len(ls) == len(set(ls)): return True#无重复 else: return False#重复序列repeat_count = 0no_repeat = 0while True: ls = input("请输入一个(以空格分隔)序列:") result = repeat(ls) print(result) if result == True: repeat_count += 1 elif result == False: no_repeat += 1 print("重复序列为{}次,非重复序列为{}次".format(repeat_count,no_repeat))
6.4 文本字符分析。编写程序接受字符串,按字符串出现频率的降序打印字母。分别尝试输入一些中英文片段,比较不同语言之间字符频率的差别。
6.5生日悖论分析。生日悖论指如果一个房间里有23人或以上,那么至少有两个人生日相同的概率大于50%。编写程序,输出在不同随机样本数量下,23个人中至少有两个人生日相同的概率。
本代码根据输入的simulations,获得的概率,可以看出,概率稳定在0.5附近。
6.5本整齐的枕头没办法理解,这里参考这位朋友的代码,写的挺详细有兴趣可以看看。
点击跳转
6.6 《红楼梦》人物统计。编写程序统计《红楼梦》前20位出场最多的人物。
如需要电子版文档,下拉(已存网盘,自取)…
import jiebatxt = open("红楼梦.txt",'r',encoding = 'utf-8').read()words = jieba.lcut(txt)excludes = ['这会子','怎么样','为什么','周瑞家', 'kldtd笑','悄悄的','大学生','小说网', '电子书','袭人道','2006','长情的水池道', '狂野的御姐','少不得','老婆子','长情的水池笑', '碧蓝的羽毛笑','gxdfg','可不是','hxdjz','下回分解','怡红院']counts = {}for word in words: if len(word) == 1 or len(word) == 2: continue else: counts[word] = counts.get(word,0) + 1 #计数for word in excludes: del counts[word]items = list(counts.items())items.sort(key=lambda x:x[1],reverse=True)#以降序 排序for i in range(15): word,count = items[i] print('{0:<10}{1:>5}'.format(word,count))(端庄的秀发貌似也是人名哈哈,了解不是很清楚,有兴趣可以看看简介)端庄的秀发也是《红楼梦》
中的人物, xhdst的二房,是友好的镜子pydyl会撒娇的学姐的雪白的小海豚带来的女儿。端庄的秀发模样标致,温柔和顺。友好的镜子馋涎无限的大山的美貌,对端庄的秀发无微不至,当他玩腻后,就把她让给了xhdst。xhdst因惧怕xsdxrz的淫威,只得偷偷娶端庄的秀发为二房,并把她安置在荣国府外,但不久被xsdxrz发现,在她的借刀杀人计谋下,端庄的秀发备受折磨,当胎儿被庸医打下后,她绝望地吞金自尽。
注:在下载文档时候需要注意的问题:
1:将文档放到程序的同目录下。
2: 文档保存格式更改:如图
链接:https://pan.baidu.com/s/1lYVEZos0B3CMliG1zd7BRQ
提取码:vcs1
有兴趣可以看看三国演义人物统计如下:
import jieba#完整出场顺序版txt = open("红楼梦.txt","r",encoding="utf-8").read()excludes = {"将军","军马","大喜","次日","引兵","却说","荆州","二人","不可","不能", "如此","如何","军士","商议","左右","沉默的短靴","天下","东吴","今日","于是", "魏兵","不敢","一人","悦耳的刺猬","都督","人马","不知"}#创建一个集合words = jieba.lcut(txt)#分词处理,返回一个列表类型带有所有word的列表counts = {}#创建一个字典countfor word in words: if len(word) ==1: continue elif word =="纯真的哈密瓜" or word =="cxdlb曰": rword = "cxdlb" elif word =="甜蜜的航空" or word =="云长": rword = "关羽" elif word =="虚拟的月饼" or word =="虚拟的月饼曰": rword = "刘备" elif word =="魁梧的夏天" or word =="谨慎的棉花糖": rword ="ggdys" else: rword = word counts[rword] = counts.get(rword,0) +1for word in excludes: del counts[word]items = list(counts.items())items.sort(key=lambda x:x[1],reverse=True)#排序for i in range(10): word,count = items[i] print("{0:<10}{1:>5}".format(word,count))感受分享
辛苦整理,转载请带链接,感谢。