Home 函数
Post
Cancel

函数

7-1 阶乘累加求和

阶乘累加求和。

输入格式:

编写阶乘函数fact(n),计算 1!+2!+3!…+n!累加和,正整数n 的值从键盘输入。

输出格式:

输出累加和。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def calc(n):
    p = 1
    for i in range(1,n+1):
        p *= i
    return p
def main():
    n = int(input())
    sumn = 0
    for i in range(1,n+1):
        temp_data = calc(i)
        sumn += temp_data
    print(sumn,end='')
if __name__ == '__main__':
    main()

7-2 计算列表均方差

从键盘输入一个列表,调用函数dev( )计算输出列表元素的均方差。

输入格式:

输入一个列表。

输出格式:

计算输出列表元素的均方差值,保留2位小数。

1
2
3
4
5
6
7
8
9
10
11
12
13
# 样本方差的公式为:S=((x1-x的平均值)^2+(x2-x的平均值)^2+(x3-x的平均值)^2+……+(xn-x的平均值)^2)/n-1)的算术平方根,其中xn表示第n个元素。
def SD_for_list(numlist):
    x_mean = float(sum(numlist) / len(numlist))
    S = 0.0
    for i in range(len(numlist)):
        S += (numlist[i] - x_mean) ** 2
    return (S / (len(numlist)-1)) ** 0.5
def main():
    ipt_lst = eval(input())
    print('dev:%.2f'%SD_for_list(ipt_lst),end='')

if __name__ == '__main__':
    main()

7-3 闰年函数

闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。补上时间差的年份为闰年。闰年共有366天(1月~12月分别为31天、29天、31天、30天、31天、30天、31天、31天、30天、31天、30天、31天)。 凡阳历中有闰日(2月29日)的年份为闰年。 1582年以来的置闰规则: 规则一:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。 规则二:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。 可以总结为:四年一闰;百年不闰,四百年再闰。 请编写一个闰年函数可以判断输入的年份(该年份必须大于1582年)是否为闰年。

输入格式:

输入四位数年份xxxx

输出格式:

xxxx年是闰年 或 xxxx年不是闰年

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def calc_LeapYear(year):
    if ((year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)):
        return True
    else:
        return False
def main():
    ipt_year = eval(input())
    if ipt_year <= 1582:
        print('年份必须大于1582年')
#         exit('年份必须大于1582年')
    else:
        if calc_LeapYear(ipt_year):
            print('%d年是闰年'%ipt_year,end='')
        else:
            print('%d年不是闰年'%ipt_year,end='')
if __name__ == '__main__':
    main()

7-4 菲波拉契(Fibonacci)数列

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 1,1,2,3,5,8,13,21,34,55,89
# 1  2 3  4  5 6   7   8  9   10
def calc_Fibonacci(n):
    com_list = []
    a_1 = 1
    a_2 = 1
    value = 0 
    for i in range(3,n+1):
#         p = (i-1)+(i-2)
        value = a_1 + a_2
        com_list.append(value)
        a_1 = a_2
        a_2 = value
    return com_list

def main():
    ipt_n = int(input())
    if ipt_n > 20:
        print('为防止递归过度消耗系统资源,n最大为20',end='')
    else:
        print('1 1 ',end='')
        for i in calc_Fibonacci(ipt_n):
            print(i,end=' ')

if __name__ == '__main__':
    main()
This post is licensed under CC BY 4.0 by the author.