Python练习(五)——函数的应用

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")

运营结果如下:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41179709/article/details/81708117
今日推荐