Python控制结构(二)※

一、题目详情

第一题

在指定位置编写代码,实现一个函数,功能是根据输入的整数nn≥0),计算并返回1到n的累加和。

如果n不合法,输出None

第二题

在指定位置编写代码,实现一个函数,功能是根据输入的整数nn不小于0),计算并返回n的阶乘。

如果n不合法,输出None

第三题

在指定位置编写代码,实现一个函数,功能是判断所给的整数是否为素数。

第四题

在指定位置编写代码,实现一个函数,功能与下面的数学函数相同。

Python控制结构(二)※_第1张图片

 

第五题

在指定位置编写代码,实现一个函数,功能是根据下表计算个人所得税。

年收入 税率
0~47,449 22%
47450~114,649 25%
114,650~174,699 28%
174,700~311,949 33%
311,950~ 35%

 

二、代码

from random import *
from math import *

r = []
for i in [10, 200,300,400,500,600,700,800,900,1000]:
    seed(i)
    r.append(randint(1, i))

def print_(x):
    if type(x) == float:
        print("%.4f" % x)
    else:
        print(x)


#第一题

def sumInt(n):
    #请在下面编写代码
    # ********** Begin ********** #
    summary = 0
    if n < 0:
        summary  = None
    else:
        for i in range(n+1):
            summary += i
    # ********** End ********** #
    #请不要修改下面的代码
    return summary


#第二题

def factorial(n):
    #请在下面编写代码
    # ********** Begin ********** #
    fac = 1
    if n < 0:
        fac = None

    else:
        for i in range(1,n + 1): # 因为0的阶乘是1,所以rang(n),range(n+1)都不对
            fac *= i
    # ********** End ********** #
    #请不要修改下面的代码
    return fac

#第三题

def isPrime(n):
    # 请在下面编写代码
    # ********** Begin ********** #
    isprime = True
    if n == 1:
        isprime = False
    else:

        for i in range(2, int(pow(n, 0.5)) + 1):
            if n % i == 0:
                isprime = False

    # ********** End ********** #
    # 请不要修改下面的代码
    return (isprime)

#第四题

def f(x):
    # 请在下面编写代码
    # ********** Begin ********** #
    fx = 0
    if -10 <= x < -8:
        fx = x - 2
    elif -8 <= x <-6:
        fx = x + 3
    elif -6 <= x <= -2:
        fx = x * x
    elif -2 < x < 2:
        fx = abs(x)
    elif 2 <= x <= 4:
        fx = x ** 3
    elif 4 < x <= 6:
        fx = 3 * x - 4
    elif 6 < x <= 8:
        fx = 4 * x + 1


    # ********** End ********** #

    # 请不要修改下面的代码
    return fx


#第五题

def tax(salary):
    #请在下面编写代码
    # ********** Begin ********** #
    salaTax = 0
    if 0 <= salary <=47449:
        salaTax = salary * 0.22
    elif 47450 <= salary <=114699:
        salaTax = salary * 0.25
    elif 114650 <= salary <=174699:
        salaTax = salary * 0.28
    elif 174700 <= salary <=311949:
        salaTax = salary * 0.33
    elif salary >= 311950:
        salaTax = salary * 0.35

    # ********** End ********** #
    # 请不要修改下面的代码
    return salaTax

if __name__ == '__main__':
    for num in [-10, 0, 10, 100, 1000, 10000]:
        summary = sumInt(num)
        print(summary)
    print('\n***********************\n')

    for num in [-5, 0, 10, 15, 20, 25, 30]:
        fac = factorial(num)
        print(fac)
    print('\n***********************\n')

    for num in r:
        isprime = isPrime(num)
        print(isprime)
    print('\n***********************\n')

    for x in [-9, -8, -7, -6, -5, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8]:
        fx = f(x)
        print(fx)

    print('\n***********************\n')
    for salary in [-1000, 0, 40000, 47450, 98000, 114650, 14980, 17470, 25670, 311950, 360000]:
        st = tax(salary)
        print_(st)


你可能感兴趣的:(python)