1.打字软件正确率
编写程序,计算字符串匹配的准确率。(类似于打字软件)
orginStr为原始内容,userStr为用户输入内容。
第一种:按单词正确与否进行判断
def accuary(orginStr):
count = 0
print(orginStr)
userStr = input("Please spell:")
orgin_list = orginStr.split()
user_list = userStr.split()
if orginStr == userStr:
return '100%'
else :
for i in range(len(orgin_list)):
if user_list[i] == orgin_list[i]:
count += 1
percentage = count/len(orgin_list)*100
return '%.2f%%' %percentage
per = accuary('hello world')
print(per)
运行结果如下:
第二种:按字母的正确与否进行判断
def accuary(orginStr):
count = 0
t = 0
print(orginStr)
userStr = input("Please spell this chars :")
userStr_list = list(userStr)
orginStr_list = list(orginStr)
if orginStr == userStr:
return '100%'
elif len(orginStr) >= len(userStr):
if userStr_list[t] == orginStr_list[t]:
t += 1
count += 1
else:
t += 1
percentage = count / len(orginStr) * 100
return '%.2f%%' %(percentage)
per = accuary('hello world')
print(per)
运行结果:
2.模拟轮盘抽奖游戏
轮盘分为三部分:一等奖,二等奖和三等奖;
轮盘转的时候是随机的,
如果范围在[0,0.08)之间。代表一等奖;
如果范围在[0.08,0.3)之间,代表二等奖;
如果范围在[0.3,1)之间,代表三等奖。
模拟本次活动10000人参加,模拟游戏时需要准备各等级奖品的个数。
import random
rewardDict = {
"first": (0, 0.08),
"second": (0.08, 0.3),
"third": (0.3, 1)
}
def rewardFun():
number = random.random()
for k, v in rewardDict.items():
if v[0] <= number <= v[1]:
return k
resultDict = {}
for i in range(10000000):
# res = garde
res = rewardFun()
# if res not in resultDict:
# resultDict[res] = 1
# else:
# resultDict[res] += 1
resultDict[res] = resultDict.get(res, 0) + 1
for k, v in resultDict.items():
print(k, "----->", v)
运行结果如下:
3.打地鼠游戏
编写代码模拟打地鼠的小游戏,
假设一共有五个洞口,老鼠在里面随机一个洞口;
人随机打开一个洞口,如果有老鼠,代表抓到了
如果没有,继续打地鼠;但是地鼠会跳到其他洞口。
def forereach():
import random
mouse = random.randint(1, 5)
human = int(input("Please guess which one:"))
# human = random.randint(1, 5)
return mouse == human
print("Pocket Mole Start!")
for i in range(5):
catch = forereach()
if catch == True:
print("You Win!")
break
else:
print("Defeat, please continue!")
else:
print("Game over!")
运行结果:
4. 密码验证合格程序
密码要求
1.长度超过8位
2.包括大小写字母.数字.其它符号,以上四种至少三种
3.不能有相同长度超2的子串重复
说明:长度超过2的子串
def passwdLen(passwd):
if len(passwd) > 8:
return True
else :
return False
def passwdType(passwd):
passwd_upper,passwd_lower,passwd_digit,passwd_char = 0,0,0,0
for i in passwd:
if i.isupper():
passwd_upper = 1
elif i.islower():
passwd_lower = 1
elif i.isdigit():
passwd_digit = 1
else:
passwd_char = 1
if (passwd_char+passwd_digit+passwd_lower+passwd_upper) >= 3:
return True
else:
return False
def passwdRepetition(passwd):
for i in range(len(passwd) - 3):
if passwd.count(passwd[i:i+3]) > 1:
return False
return True
while True:
passwd = input("请输入密码:\n")
if passwdLen(passwd) and passwdRepetition(passwd) and passwdType(passwd):
print("OK")
elif passwd == 'quit':
break
else:
print("NG")
运营结果如下: