《Python程序设计实验教程——以医药数据处理为例》第五章综合应用题

摘要:本文旨在帮助中国药科大学的学生学习必修课《Python与医药大数据处理》,在实验操作题方面给予代码参考。
欢迎各界人士共同讨论Python相关话题,并给予宝贵建议。

目录

PY50301:自定义函数实现数值的奇偶性判断

PY50302:自定义函数,实现给定字符串是否为数值型字符串的判断

PY50303:实现输出前50个回文素数

PY50304:自定义函数实现累加求和

PY50305:自定义函数实现密码强度分级


PY50301:自定义函数实现数值的奇偶性判断

要求:自定义函数isodd(),实现对单个数值奇偶性的判断。如果参数为奇数,则返回True,为偶数则返回False;如果参数为非整数,则输出非法操作提示字符串

def isodd(n):
    if type(n)==int:
        if n%2==0:
            return False
        else:
            return True
    else:
         return "This is not a valid number!"

x=eval(input("Please input a integer:"))
print(isodd(x))

PY50302:自定义函数,实现给定字符串是否为数值型字符串的判断

要求:自定义函数isnum()用于判断给定的字符串能否成功转化成一个数值,如果可以,则返回True并在屏幕上输出,否则返回False并在屏幕上输出

def isnum(a):
    try:
        if a.isnumeric():
            return True
        elif complex(a)==eval(a):
            return True
    except:
        return False
s=input("请输入一个字符串:")
print(isnum(s))

PY50303:实现输出前50个回文素数

要求:自定义函数isprime()用来判断一个数是否为素数,自定义函数ishui()用来判断一个数是否为回文数。编写程序,调用以上两个自定义函数输出前50个回文素数

def isprime(n):
    flag=True
    for j in range(2,n):
        if n%j==0:
            flag=False
            break
    return flag

def ishui(m):
    if m==m[::-1]:
        return True
    else:
        return False

count=1
i=2
print("前50个回文素数为:")
while count<=50:
    if isprime(i):
        if ishui(str(i)):
            print("{:<7}".format(i),end="")
            if count%10==0:
                print()
            count+=1
            i+=1
        else:
            i+=1
    else:
        i+=1

PY50304:自定义函数实现累加求和

要求:自定义函数su(m)实现1+2+3+···+m的求和;自定义函数sumall(n),在函数内部调用su(m)函数,实现多项式1+(1+2)+···+(1+2+3+···+n)的求和并在屏幕上输出结果

def su(m):
    sum=0
    for i in range(1,m+1):
        sum+=i
    return sum

def sumall(n):
    sumall=0
    for j in range(1,n+1):
        sumall+=su(j)
    return sumall

x=eval(input("n="))
print("The sum is:",sumall(x))

PY50305:自定义函数实现密码强度分级

要求:自定义函数codelevel(),实现密码强度判断,标准为每满足以下条件中的一条,密码强度增加一级:

(1)有数字;

(2)有大写字母:

(3)有小写字母;

(4)位数不少于8位

要求从键盘上连续输入密码,遇空行按Enter键结束输入,在屏幕上输出密码强度

def codelevel(s):
    level=0
    for c in s:
        if c.isnumeric()==True:
           level+=1
           break
    for c in s:
        if c.isupper()==True:
            level+=1
            break
    for c in s:
        if c.islower()==True:
            level+=1
            break
    if len(s)>=8:
        level+=1
    return level
        
while True:
    code=input("请输入测试密码(直接按Enter键退出):")
    if code:
        print("{}的密码强度为{}级".format(code,codelevel(code)))
    else:
        break

  • 9
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姜半夏.1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值