PDS.2-131

问题一

将999转换为布尔值,并打印。

# YOUR CODE HERE
print(bool(999))
True

问题二

将-2341的绝对值打印。

# YOUR CODE HERE
print(abs(-2341))
#raise NotImplementedError()
2341

问题三

使用pow()函数计算3的5次方,并打印。

# YOUR CODE HERE
print(pow(3,5))
#raise NotImplementedError()
243

问题四

将3.1425926保留2位小数,并打印。

# YOUR CODE HERE
print(round(3.1425926, 2))
3.14

问题五

求“345除以5的余数”、“678除以9的余数”、“384除以7的余数”中的最小值,并打印。

# YOUR CODE HERE
a=345%5
b=678%9
c=384%7
print(min(a,b,c))
0

PDS.2-132

问题一

设计一个函数printinfo(fruit, quantity),其中fruit是一个字符串,quantity是一个数字。该函数将返回一个包含水果名字和重量的列表,例如:printinfo(‘apple’, 5)返回[“apple”,5]。

# grader format
def printinfo(fruit, quantity):
    l=[fruit,quantity]
    return(l)
from nose.tools import assert_equal
assert_equal(printinfo('banana', 11), ['banana', 11])
assert_equal(printinfo('apple', 4), ['apple', 4])

问题二

设计一个程序multi_table(a, b),a、b为任何两个数字。该函数将返回a和b相乘的结果,例如,multi_table(3,4)将返回12。

# grader format
def multi_table(a, b):
    # YOUR CODE HERE
    return a*b
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(multi_table(2, 3), 6.0)
assert_equal(multi_table(4, 3), 12.0)

问题三

设计一个函数f(x, y, z),x、y、z为三个数字,该函数将返回这三个数字的和。

# grader format
def f(x, y, z):
    return x+y+z
    # YOUR CODE HERE
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(f(2, 3, 7), 12)
assert_equal(f(4, 3, 8), 15)

问题四

设计一个函数Ff(x),x为一数字。该函数将求出x除以2的余数,并返回余数。

# grader format
def Ff(x):
    return x%2
    # YOUR CODE HERE
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(Ff(456), 0)
assert_equal(Ff(467), 1)

问题五

设计一个函数f(x, y),x、y为数字。该函数将计算x的y次方,并返回计算后的结果。

提示:使用pow()函数

# grader format
def f(x, y):
    # YOUR CODE HERE
    return pow(x,y)
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(f(2,3), 8)
assert_equal(f(4,3), 64)

PDS.2-133

问题一

设计一个函数volume_calculate(r, h),其中r代表半径,h代表高度,两者皆为数字。该函数让使用者计算已知半径和高度的圆木体积。计算体积的公式如下: $$ V=(1/3)hPi*r^2 $$

提示:

  1. 使用math.pi来表示$\pi$
  2. 结果应该保留2位小数:v = float(‘%.2f’ %v)
# grader format
import math
def volume_calculate(r, h):
    # YOUR CODE HERE
    v=(1/3) * h * math.pi * r ** 2
    return float('%.2f' %v)
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(volume_calculate(1, 2), 2.09)
assert_equal(volume_calculate(8, 3), 201.06)

问题二

设计一个函数list_pos(a, n),a是一个列表,n是一个数字。该函数应返回a列表的第n个数字,例如:list_pos([1,2,3,4], 3),结果将返回3。

# grader format
def list_pos(a, n):
    # YOUR CODE HERE
    return(a[n-1])
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(list_pos([1,2,3,4,5,6],4), 4)
assert_equal(list_pos([1,10,9,4,5], 3), 9)

问题三

设计一函数ball(r),r代表半径。该函数将求出球的体积,并返回保留两位小数的体积结果。

# grader format
import math
def ball(r):
    s=(4/3)*math.pi*r**3,
    return float('%.2f' %s)
    # YOUR CODE HERE
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(ball(1),4.19)
assert_equal(ball(2),33.51)

问题四

设计一个函数cimi(a),a为一数字。该函数将返回e的a次幂。

# grader format'=
import math
def cimi(a):
    return(math.e**a)
    # YOUR CODE HERE
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(cimi(1), 2.718281828459045)
assert_equal(cimi(-1), 0.36787944117144233)

问题五

设计一函数sin(a),a为一数字。该函数将求出sin(a)的值。

提示:先把角度变成弧度,再计算sin值

# grader format
def sin(a):
    return(math.sin(a*math.pi/180))
    # YOUR CODE HERE
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(sin(1), 0.01745240643728351)
assert_equal(sin(-3), -0.05233595624294383)

PDS.2-134

问题一

对于方程,例如x<sup>2</sup>+2x+1=0,找到根x的方法通常涉及估计一个复杂表达式,形如二次公式。这些方程已知是二次方程,通常表示成ax<sup>2</sup>+bx+c=0,这里a,b,c是常数。计算根的二次公式在下面给出: $$ x_1=\frac{-b+\sqrt{b^2-4ac}}{2a}$$ $$ x_2=\frac{-b-\sqrt{b^2-4ac}}{2a}$$

设计一个函数quadratic(a,b,c),它将a,b,c作为参数,计算根并且返回一个列表 [$x_1$, $x_2$]。如果没有根,则返回“False”。

# grader format
import math
def quadratic(a,b,c):
    delta=(b*b-a*4*c)**(1/2)
    if delta<0:return("False")
    return([(-b+delta)/2*a,(-b-delta)/2*a])
    # YOUR CODE HERE
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(quadratic(1, -2, 1), [1.0, 1.0])
assert_equal(quadratic(1, -7, 12), [4.0, 3.0])

问题二

设计一个函数peven(n),n为一数字。输入n为偶数时,调用函数求1/2+1/4+…+1/n。

# grader format
def peven(n):
    s = 0.0
    for i in range(2,n + 1,2):
        s += 1.0 / i
    return s
    # YOUR CODE HERE
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(peven(9), 1.0416666666666665)
assert_equal(peven(20), 1.4644841269841269)

问题三

设计一函数f(n),n为一数字。该函数返回n各位数字的平方和。

# grader format
def f(n):
    s=str(n)
    ans=0
   # print(len(s))
    for i in range(0,len(s),1):
        p=int(s[i])
        p=p*p
        ans+=p
    return ans
    # YOUR CODE HERE
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(f(20), 4)
assert_equal(f(345), 50)

问题四

设计一函数my_abs(x),x为一任意数字。该函数将返回x的绝对值。

# grader format
def my_abs(x):
    return(abs(x))
    # YOUR CODE HERE
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(my_abs(20), 20)
assert_equal(my_abs(-345), 345)

问题五

设计一函数collatz(number),其中number为一数字。如果number是偶数,函数将返回number除以2后的整数解;如果number是奇数,函数将返回3*number+1。

# grader format
def collatz(number):
    if number%2==0:
        return(int(number/2))
    else:
        return(number*3+1)
    # YOUR CODE HERE
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(collatz(10), 5)
assert_equal(collatz(35), 106)

PDS.2-135

问题一

设计一个函数splicing(),写入不定个数的字符串作为参数。该函数将拼接第一个和最后一个字符串。

# grader format
def splicing(*args):
    # YOUR CODE 10
    s=''
    for data in args:
        s+=str(data)
    return s[0]+s[len(s)-1]
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(splicing('1','2','3'), '13')

问题二

设计一函数funcl(p),p为一列表/元组。该函数将检查p的所有奇数位索引对应的元素,并将其作为新的列表返回。

# grader format
def func1(p):
    # YOUR CODE HERE
    list=[]
    for i in range(0,len(p)-1,1):
        if (i)%2==1:
            list.append(p[i])
    return list
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(func1([11,22,33]), [22])

问题三

设计一函数funcl(),写入不定内容的字典。该函数将检查输入字典每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回。

# grader format
def func1(**p):
    ret = {}
    for key,value in p.items():
        if len(value) > 2:
            ret[key] = value[0:2]
        else:
            ret[key] = value
    return ret
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(func1(k1="v1v1",k2=[11,22,33,44,55]), {'k1': 'v1', 'k2': [11, 22]})

问题四

设计一函数jlen(str),str为一字符串。该函数将计算字符串的长度。

提示:使用遍历的方式计算

# grader format
def jlen(str):
    # YOUR CODE HERE
    return len(str)
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(jlen('xiegezifuchuan'), 14)

问题五

设计一函数is_prime(n),n为一数字。该函数将判断n是否为素数,如果n为素数,返回True;反之,则返回False。

# grader format
import math
def is_prime(n):
    for i in range(2,n-1,1):
        if n%i==0:return False
    return True
    # YOUR CODE HERE
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(is_prime(15), False)

PDS.2-136

问题一

使用lambda来定义函数a(x)= x+2。

# grader format
a = lambda x: x+2
# YOUR CODE HERE
#raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(a(3), 5)

问题二

使用lambda的方式来定义函数a(x,y)= xx+yy。

# grader format
# YOUR CODE HERE
a=lambda x, y: x*x+y*y
#raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(a(2,4), 20)

问题三

设计一函数suml(n),其中n为一数字。该函数将求1-2+3-4+5-6+7-8+9-…n的值。

提示:使用while进行判断

# grader format
def sum1(n):
    b=1
    i=0
    ans=0
    while i<n :
        i=i+1
        ans=ans+i*b
        b=b*-1
    return ans
    # YOUR CODE HERE
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(sum1(20), -10)

问题四

设计一函数shuixianhua(m,n),m和n皆为数字。该函数计算m,n之间的所有水仙花数的个数,水仙花数是其各位数字立方和等于该数本身。

提示:使用while进行判断;水仙花数是指一个 3 位数

# grader format
def shuixianhua(m, n):
    ans=0
    for i in range(m,n,1):
        if (int(i/100))**3+(int(i/10)%10)**3+int(i%10)**3==i:
            ans+=1
    return ans
    # YOUR CODE HERE
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(shuixianhua(300,500), 3)
assert_equal(shuixianhua(100,700), 4)

问题五

设计一函数calulatel(m),m为一数字。该函数将计算1到m中能被7整除但不是偶数的数的个数。

# grader format
def calulate1(m):
    ans=0
    for i in range(1,m,2):
        if i%7==0 :ans+=1
    return ans
    # YOUR CODE HERE
    raise NotImplementedError()
from nose.tools import assert_equal
assert_equal(calulate1(100), 7)
assert_equal(calulate1(250), 18)
#By不做评论
说点什么
欢迎留言~
支持Markdown语法
暂时没有评论。
Loading...