一、检测并输出重复单词
需求:
重复的单词: 此处认为单词之间以空格为分隔符, 并且不包含,和.>;
1. 用户输入一句英文句子;
2. 打印出每个单词及其重复的次数;
输入:"hello java hello python"
输出: hello 2
java 1
python 1
代码实现:
User_w = input('输入:')
#对单词进行分割处理
li_u = User_w.split()
#定义一个空字典来存储单词和出现的次数
di_u = {}
"""
循环遍历列表:
如果元素不在字典的key中,将元素作为key,1作为value值
如果元素在字典的key中,更新元素的value值,在原有的value值+1
"""
for item in li_u:
if item in di_u:
di_u[item] += 1
else:
di_u[item] = 1
for i,v in di_u.items():
print('%s\t%s'%(i,v))
执行效果:
二、数字重复统计:
需求:
数字重复统计:
1) 随机生成1000个整数
2) 数字范围[20,100]
3) 升序输出所有不同的数字及其每个数字的重复次数
代码实现:
import random
#定义列表用于接收随机数以及排序
#定义字典用于记录重复次数及随机数
li = []
di = {}
#生成1000个随机数并存放在列表中
for i in range(1000):
li.append(random.randint(20,100))
#排序
li.sort()
#遍历列表,统计重复次数
for item in li:
if item in di:
di[item] += 1
else:
di[item] = 1
print(di)
执行效果:
三、生成1000个随机卡号,并且设定初始密码均为redhat
需求:
1. 随机生成100个卡号;
卡号以6102009开头, 后面3位依次是 (001, 002, 003, 100),
2. 生成关于银行卡号的字典, 默认每个卡号的初始密码为"redhat";
3. 输出卡号和密码信息, 格式如下:
卡号 密码
6102009001 000000
代码实现:
#定义列表用于存储卡号
s = []
#for循环生成连续100个卡号,存储在列表中
for i in range(100):
s1 = '6101009%.3d' %(i+1)
s.append(s1)
#使用fromkeys函数创建并返回一个新字典,s为key,value值设为redhat
s2={}.fromkeys(s,'redhat')
print('银行卡号:\t\t\t密码:')
#使用for循环输出卡号及密码
for key, value, in s2.items():
print('%s\t\t\t%s' % (key, value))
执行效果:
四、模拟轮盘抽奖游戏
需求:
轮盘分为三部分: 一等奖, 二等奖和三等奖;
轮盘转的时候是随机的,
如果范围在[0,0.08)之间,代表一等奖,
如果范围在[0.08,0.3)之间,代表2等奖,
如果范围在[0.3, 1.0)之间,代表3等奖,
模拟本次活动1000人参加, 模拟游戏时需要准备各等级奖品的个数.
代码实现:
import random
li = []
rewardDict = {
'一等奖': 0,
'二等奖': 0,
'三等奖': 0
}
for num in range(1000):
a = random.random()
li.append(a)
for item in li:
if 0<= item <0.08:
rewardDict['一等奖'] += 1
elif 0.08<= item <0.3:
rewardDict['二等奖'] += 1
elif 0.3<= item <1:
rewardDict['三等奖'] += 1
for i,v in rewardDict.items():
print(i,v)
执行效果: