PDS.2-141

问题一

设计一个函数check_even(a),a为一数字。该函数将检查a是否为偶数,例如:check_even(13)将返回“False”。

# grader format
def check_even(a):
    # YOUR CODE HERE
    if (a%2==0):
        return True
    else:
        return False
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(check_even(12), True)
assert_equal(check_even(25), False)

问题二

设计一函数triangle(a,b,c),a、b、c皆为数字,并代表三角形里的三边长。该函数将利用a、b、c判断三角形的类别。如果c<sup>2</sup> < a<sup>2</sup> + b<sup>2</sup>,则它是一个锐角三角形;如果c<sup>2</sup> = a<sup>2</sup> + b<sup>2</sup>,则它是一个直角三角形;如果c<sup>2</sup> > a<sup>2</sup> + b<sup>2</sup>,则它是一个钝角三角形。例如:triangle(3, 4, 5),将返回“直角三角形”。

# grader format
def triangle(a,b,c):
    if c*c==a*a+b*b:
        return'直角三角形'
    if c*c<a*a+b*b:
        return'锐角三角形'
    if c*c>a*a+b*b:
        return'钝角三角形'
    # YOUR CODE HERE
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(triangle(3,4,5), '直角三角形')
assert_equal(triangle(4,5,7), '钝角三角形')

问题三

编写一个函数prize(),代表一彩票系统。用户输入一个数,程序再随机生成一个数,判断这两个数是否相等。如果相等,则打印”恭喜您,运气爆表了”;反之,则打印”再来一次吧,大奖再等着你”。

提示:

  1. 使用random函数库来生成随机数,函数语句为import random
  2. num2 = random.choice(range(100,1000))表示在100-1000之间随机生成一个数
  3. 函数prize()为判断是否中奖的函数,其中应用input来输入自己选好的数。
# YOUR CODE HERE
import random
def prize(num1):
    num2 = random.choice(range(100,1000))
    if num1==num2:
        return"恭喜您,运气爆表了"
    else:
        return "再来一次吧,大奖再等着你"
num1=input()
print(prize(num1))
#raise NotImplementedError()
917
再来一次吧,大奖再等着你

问题四

设计一函数hWs(num1),num1为一五位数。该函数将判断num1是否为回文数,如果是回文数,打印“是回文数”;反之,则打印“不是回文数”。

提示:回文数是正读倒读都一样的整数,例如:11111 12321 12221

# grader format
def hWs(num1):
    if (num1%10)*1000+int((num1%100)/10)*100+int((num1%1000)/100)*10+int(num1/1000)==num1:
        return'是回文数'
    else:
        return'不是回文数'
    # YOUR CODE HERE
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(hWs(1111), '是回文数')
assert_equal(hWs(1231), '不是回文数')

问题五

设计一函数pcd(people, cats, dogs),people、cats、dogs皆为数字。该函数将判断三者间的关系:
如果people小于cats,返回“Too many cats!The world is doomed”;
如果people大于cats,返回“Not many cats! The world is saved!”;
如果people小于dogs,返回“The world is drooled on!”;
如果people大于dogs,返回“The world is dry!”;
如果people大于等于dogs,返回“People are greater than or equal to dogs.”;
如果people小于等于dogs,返回“People are less than or equal to dogs.”;
如果people等于dogs的数量,则返回“People are dogs.”。

# grader format
def pcd(people, cats, dogs):
    if people<cats:
        pcd="Too many cats!The world is doomed"
    if people>cats:
        pcd="Not many cats! The world is saved!"
    if people<dogs:
        pcd="The world is drooled on!"
    if people>dogs:
        pcd="The world is dry!"
    if people>=dogs:
        pcd="People are greater than or equal to dogs."
    if people<=dogs:
        pcd="People are less than or equal to dogs."
    if people==dogs:
        pcd="People are dogs."
    # YOUR CODE HERE
    return pcd
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(pcd(3,4,5), 'People are less than or equal to dogs.')
assert_equal(pcd(4,4,4),'People are dogs.')

PDS.2-142

问题一

设计一函数mr(month),month为一数字。该函数将判断month为哪一个月份,并将判断结果一字符串形式赋予result。
如果month为有31天的月份,结果为”此月有31天”;
如果month为有30天的月份,结果为”此月有30天”;
如果month为2,结果为”此月份在闰年29天,在平年有28天”;
如果month不属于任何可判断月份,则结果为”输入有误,请重新输入”。

# grader format
def mr(month):
    # YOUR CODE HERE
    if month==2 :
        return"此月份在闰年29天,在平年有28天"
    if month in[1,3,5,7,8,10,12]:
        return"此月有31天"
    else:
        return"此月有30天"
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(mr(2), '此月份在闰年29天,在平年有28天')

问题二

设计一个函数grade_check(grade),grade为一数字。该函数允许使用者检查他/她的成绩,如果成绩不在这个表格中,则返回“超出范围”。

成绩等级
0~60不及格
60~70通过
70~80及格
80~90良好
90~100优秀

例如:grade_check(700)应返回“超出范围”,而grade_check(65)应返回“通过”。

# grader format
def grade_check(grade):
    if grade>100:
        return'超出范围'
    if grade<=60:
        return"不及格"
    if grade<=70:
        return"通过"
    if grade<=80:
        return"及格"
    if grade<=90:
        return"良好"
    if grade<=100:
        return"优秀"
    # YOUR CODE HERE
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(grade_check(700), '超出范围')
assert_equal(grade_check(65), '通过')

问题三

设计一函数isrun(year),year为一数字,代表年份。该函数将判断year是否为闰年,并返回字符串”(year) 是/不是闰年”,赋予result,例如:isrun(2000)将返回”2000 是闰年”。

提示:
非世纪年(不能被100整除的年份)能被4整除的为闰年。(如2004年就是闰年,1999年不是闰年);
世纪年(能被100整除的年份)能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)

# grader format
def isrun(year):
    # YOUR CODE HERE
    if (int(year/4)*4==year)&(year<2000)|(int(year/400)*400==year)&(year>=2000):
        return(str(year)+" 是闰年")
    else:
        return(str(year)+" 不是闰年")
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(isrun(1995),'1995 不是闰年')

问题四

设计一函数model4(m),m为一数字。该函数将利用下列公式计算π的近似值,直到最后一项的分母为m。 <center>π/4 = 1 – 1/3 + 1/5 – 1/7 + 1/9 – …1/m<center>

# grader format
def model4(m):
    # YOUR CODE HERE
    ans=1
    f=True
    for i in range(3,m,2):
        if f==True:
            ans=ans-(1/i)
            f=-f
        else:
            ans=ans+(1/i)
            f=-f
    return ans*4
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(model4(10000),3.141392653591791)

问题五

设计一函数model5(n),n为一数字。该函数将打印0-n之间的偶数。

提示:需要用到while函数

def model5(n):
    return(list(range(0,n+2,2)))
from nose.tools import assert_equal
assert_equal(model5(30),[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30])

PDS.2-143

问题一

BMI(body mass index)是千克除以米为单位的高度的平方(kg/m2)。BMI=weight/height2,它是一个衡量一个人是否健康的标准。

我们基于该值把人的身体状况分为偏瘦、正常、过重或者肥胖。

BMI状况
0~18.5偏瘦
18.5~25正常
25~30过重
30~肥胖

设计一函数BMI_judger(weight, height),weight、height皆为数字。该函数将使用weight、height计算BMI,判断该BMI为何种状况,并返回状况。例如:如果BMI_judger(60, 1.75)中计算出的BMI在”正常”的范围内,应返回”正常”。

# grader format
def BMI_judger(weight,height):
    # YOUR CODE HERE
    bmi=weight/height/height
    if bmi<=18.5:
        return"偏瘦"
    if bmi<=25:
        return"正常"
    if bmi<=30:
        return"过重"
    if bmi>30:
        return"肥胖"
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(BMI_judger(60,1.74), '正常')
assert_equal(BMI_judger(87,1.84), '过重')

问题二

设计一函数BMI_judger(weight,height),与问题一相似,但为BMI健康计算器的改进。
有时,人们更经常使用厘米为单位的身高,如167cm。所以,函数将自动地转化厘米为单位的身高成为米为单位的身高

提示:记得将身高变为浮点数,因为米为单位的身高通常有两位小数

# grader format
def BMI_judger(weight,height):
    # YOUR CODE HERE
    if height>10:
        height=height/100
    bmi=weight/height/height
    if bmi<=18.5:
        return"偏瘦"
    if bmi<=25:
        return"正常"
    if bmi<=30:
        return"过重"
    if bmi>30:
        return"肥胖"
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(BMI_judger(50,162), '正常')
assert_equal(BMI_judger(87,1.84), '过重')

问题三

设计一函数iszc(a),a为一数字。该函数将判断a能否被 2 和 3 同时整除;
能否被 2 整除;
能否被 3 整除;
不能被 2 和 3 整除。
函数将返回相应信息’该数字能被 2 和 3 同时整除’、’该数字能被 2 整除’、’该数字能被 3 整除’或’该数字不能被 2 和 3 整除’。

# grader format
def iszc(a):
    # YOUR CODE HERE
    if a%6==0:
        return"该数字能被 2 和 3 同时整除"
    if a%3==0:
        return"该数字能被 3 整除"
    if a%2==0:
        return"该数字能被 2 整除"
    return"该数字不能被 2 和 3 整除"
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(iszc(110), '该数字能被 2 整除')

问题四

设计一个函数f1(args),args为一列表。该函数将列表内所有大于 66 的值保存在一个新的列表内并返回。

# grader format
def f1(args):
    arg1=[]
    # YOUR CODE HERE
    for data in args:
        if data>66:
            arg1.append(data)
    return arg1
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(f1([121, 22, 33, 44, 55,77,457]), [121, 77, 457])

问题五

使用while判断用户的登录情况。用户需要输入用户名和密码登录,如果用户名是’wxd’并且密码是’123456’,则表示登陆成功;如果发生错误,则需要重新输入;如果输入的信息错误且超过三次,则退出该系统。

提示:使用input()输入用户名和密码

# YOUR CODE HERE
i=0
l=False
while i<3 and l!=True:
    username=input("用户名:")
    password=input("密码:")
    if (str(username)=="wdx")&(str(password)=="123456"):
        print("登陆成功!")
        l=True
    else:
        i=1+i
        print("用户名或密码错误!")
用户名:wdx
密码:123456
登陆成功!
#by不做评论

 

说点什么
欢迎留言~
支持Markdown语法
暂时没有评论。
Loading...