函数的认识

 函数是指一段可以被重复调用的代码块,python中所有的函数都必须使用def关键字进行定义,函数必须要通过调用才会返回结果,函数与函数之间可以相互调用。下面是函数定义格式:

1,不使用return返回值,不传递参数

def hello() :
    print("Hello World!")
hello()  #调用hello()函数

输出:
Hello World!

2,不使用return返回值,传递参数a

def hello(a) :
    print(a)
hello("Hello World!")  #调用hello函数,并传递所需要的参数内容"Hello World!"

输出:
Hello World!

在python中定义的函数如果没有使用return语句返回内容,那么实际上所返回的数据就是None.

def hello(a) :
    pass
hello("Hello World!")  #调用hello函数,并传递所需要的参数内容"Hello World!"

输出:
None

3,return关键字

        1)不带有任何值

def hello(a) :
    print(a)
    return
hello("Hello World!")

输出:
Hello World!   #这个是print()得到的结果,return没有返回任何值

       2)指定确切的值

def hello(a) :
    print(a)
    return 100
b=hello("Hello World!")
print(b,type(b))

输出:
100 <class 'int'>

       3)返回多个数据  

def hello(a) :
    print(a)
    return a,100
b,c=hello("Hello World!")
print(b,c,type(c))

输出:
Hello World!
Hello World! 100 <class 'int'>

4,参数

比较两个数,并返回较大的数:

def max(a, b):
    if a > b:
        return a
    else:
        return b
a = 4
b = 5
print(max(a, b))

结果:
5

不使用函数的情况下
a = 4
b = 5
if a > b:
        print(a)
    else:
        print(b)

计算面积函数:

def area(width, height):
    return width * height

def print_welcome(name):
    print("Welcome", name)

print_welcome("Runoob")

w = 4
h = 5
print("width =", w, " height =", h, " area =", area(w, h))

结果:
Welcome Runoob
width = 4  height = 5  area = 20

使用默认参数:

def printinfo(name='lisa', age = 35):
    "打印任何传入的字符串"
    print ("名字: ", name)
    print ("年龄: ", age)
    return

#调用printinfo函数
printinfo(age=50, name='runoob')

结果:
名字:  runoob
年龄:  50
def printinfo( age=50, name="runoob"):
    "打印任何传入的字符串"
    print ("名字: ", name)
    print ("年龄: ", age)
    return
printinfo()

结果:
名字:  runoob
年龄:  50

使用多参数,带*:

def printinfo( arg1, *vartuple ):
    "打印任何传入的参数"
    print ("输出: ")
    print (arg1)
    print (vartuple)

# 调用printinfo 函数
printinfo( 70, 60, 50 )

输出:
70
(60, 50)

实战演练

  1. 使用递归的方式来生成斐波那契数列
def recur_fibo(n):
    if n <= 1:
        return n
    else:
        return(recur_fibo(n-1) + recur_fibo(n-2))
nterms = int(input("您要输出几项? "))
# 检查输入的数字是否正确
if nterms <= 0:
    print("输入正数")
else:
    print("斐波那契数列:")
    for i in range(nterms):
        print(recur_fibo(i),end=',')

结果:
您要输出几项? 10
斐波那契数列:
0,1,1,2,3,5,8,13,21,34

f(i=0)=0

f(i=1)=1

f(i=2)=f(i=0)+f(i=1)=1

f(i=3)=f(i=2)+f(i=1)=1+1=2

f(i=4)=f(i=3)+f(i=2)=2+1=3   以此类推

2.计算1!+2!+3!+…+n!

def fac(n):
       if n==0 or n==1:
              return 1
       else:
              return n*fac(n-1)
sum=0
for i in range(1,11):
       sum+=fac(i)
print(sum)

3.计算 n 个自然数的立方和,1^3+2^3+3^3+4^3+……+n^3 

# 定义立方和的函数
def sumOfSeries(n):
    sum = 0
    for i in range(1, n+1):
        sum +=i*i*i
    return sum 

# 调用函数
n = 5
print(sumOfSeries(n))

经典的基础题型请见这一篇;蓝桥杯经典基础试题——函数-CSDN博客 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值