函数与模块python(书本代码)

函数与模块(python小练习)

1.1斐波那契数列(函数调用)

  1. 例1.1-1
def fib(n):
    a,b=1,1
    item=1
    while(item<=n):
        print(a,end=' ')
        a,b=b,a+b
        item+=1
fib(10)

运行结果:1 1 2 3 5 8 13 21 34 55

  1. 例1.1-2
def fib(n):
    a,b=1,1
    item=1
    while(item<=n):
        print(a,end=' ')
        a,b=b,a+b
        item+=1
print(fib(10))

运行结果:1 1 2 3 5 8 13 21 34 55 None

1.2计算两个数中的最大值(函数调用)

  1. 例1.2-1
#定义函数计算两个数中的最大值
def maximum(x,y):
    if x>y:
        return x
    elif x==y:
        return "这两个数相等"
    else:
        return y
a=eval(input(" "))
b=eval(input(" "))
print(maximum(a,b))

输入: 2.3 和 4.5 输出: 4.5

  1. 例1.2-2
#定义函数计算两个数中的最大值
def maximum(x,y):
    if x>y:
        return x
    elif x==y:
        return "这两个数相等"
    else:
        return y
a,b=input().split(" ")  #单行输入两个数
print(maximum(a,b))

输入:3.3 3.3 输出:这两个数相等

1、定义的函数中有返回值(return)时,当执行到return语句就返回调用处。例如程序(1.2)调用函数语句maximum(a,b)将a,b的值传递给x,y,并用print语句输出函数返回的值。

2、 当函数没有return语句(没有给出要返回的值时),Python会给它一个None值。例如程序(1.1-2)输出的 Fibonacci 数字序列是在fib函数中实现的,而最后输出None是因为print语句要输出fib(n)函数的返回值,而fib是一个无返回值的函数所以Python会给它一个None值(代表无)因此会多出一个None。

1.3输出两位学生的课程成绩单及各自的平均成绩

def grade(name,num,*scores):
    print(name)
    print("{}门课程成绩为:".format(num))
    ave=0
    for i in scores:
        print(i,end=' ')
        ave+=i
    ave/=num
    print("\n平均成绩为{:.2f}".format(ave))
grade("张三",3,90,100,98)

输出:
张三
3门课程成绩为: 90 100 98
平均成绩为96.00

for x in y:
循环体
执行流程:x依次表示y中的一个元素,遍历完所有元素循环结束
定义函数时,在函数的第一行参数列表右侧增加一个带 *的参数表示参数的数量是可变的。

1.4求n的阶乘(用递归的方式)

def fact(n):
    if n==1:
        return 1
    return n * fact(n-1)
print(fact(3))

运行结果:6

1.5求(a+b)ⁿ

求两数之和的n次方可以分解成二项式
通过观察如下的二项展开式不难发现
(1)求整数的阶乘
(2)求组合数
(3)求二项式中的各项
(4)求各项的累加和
在这里插入图片描述

#定义求阶乘函数
def fac(N):
    term=1
    for i in range(1,N+1):
        term*=i
    return term
#定义求组合数函数
def comb(M,N):
    return fac(M)/fac(N)/fac(M-N)
#定义求二项式通项函数
def term(a,b,n,r):
    return comb(n,r)*a**(n-r)*b**r
#定义求和函数
def sum(a,b,n):
    item=0
    for r in range(n+1):
        item+=term(a,b,n,r)
    return item
a=eval(input("请输入二项式系数a:"))
b=eval(input("请输入二项式系数b:"))
n=eval(input("请输入项数n:"))
print(sum(a,b,n))

输入:3 1 2 输出:16.0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值