python基础语法(一)计算和控制流:函数(def)

本文介绍了Python中的函数,包括如何定义和调用函数,重点讲解了函数的返回值、变量作用域以及全局变量的使用。此外,还提到了`map()`函数和匿名函数`lambda`的应用,展示了如何通过循环和递归计算前100个数的和。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数(function)
程序中实现明确功能的代码段可以封装成一个函数,以便复用(reuse)

定义函数:
用def语句创建一个函数
用return关键字指定函数返回的值
    def<函数名>(<参数表>)
          <缩进的代码段>
           return<函数返回值>
调用函数:
    <函数名>(<参数>)
注意括号!
无返回值:<函数名>(<参数表>)
返回值赋值:v = <函数名>(<参数表>)

def sum_list(s):
    sum_temp = 0
    for i in s:
        sum_temp +=i
    return sum_temp
a = [1,2,3,4,5,6,7,8,9]
print("sum of a:",sum_list(a))
>>> 
sum of a: 45

变量的作用域:
局部变量(Local Variable)在函数内部定义的参数以及变量,只有在该函数定义范围内有效,函数外边无法访问到

def sum_number(number1,number2):
    result = number1 + number2
    return result
number1 = 1
number2 = 2
print("sum is:",sum_number(number1,number2))
>>> 
sum is: 3

全局变量(Global Variable)在函数外部定义的,作用域是整个代码段

def sum_number():
    number1,number2 = 2,3
    return (number1 + number2)
number1 = 1
number2 = 2
print(sum_number())
print(number1,number2)
>>> 
5
1 2

global关键字:在函数内部使用与全局变量同名的变量时,若未在函数内进行定义,则使用全局变量的值。一旦在函数内部进行定义,Python会在函数内部创建一个局部变量,与全局变量就不相关了。使用global关键字可以在函数中改变全局变量的值

def sum_number():
    global number1,number2
    number1,number2 = 2,3
    return (number1 + number2)
number1 = 1
number2 = 2
print(sum_number())
print(number1,number2)
>>> 
5
2 3

函数小技巧:
map()函数
有时需要对列表中每个元素做一个相同的处理,得到新列表
map(function,list1,list2...)
函数function有几个参数,后面跟几个列表

list1 = [10,11,12,13,14,15]
list2 = [1,2,3,4,5,6]
def function1(a):
    return a*5
print(list(map(function1,list1)))
>>> 
[50, 55, 60, 65, 70, 75]

def function2(a,b):
    return a * 5 + b / 2 
print(list(map(function2,list1,list2)))
>>> 
[50.5, 56.0, 61.5, 67.0, 72.5, 78.0]

匿名函数lambda
有时函数只用一次,其名称也就不重要,可以无需费神取def一个,可以直接使用lambda表达式
lambda<参数表>:<表达式>

list1 = [10,11,12,13,14,15]
list2 = [1,2,3,4,5,6]
print(list(map(lambda a:a * 5,list1)))
print(list(map(lambda a,b:a * 5 + b / 2,list1,list2)))
>>> 
[50, 55, 60, 65, 70, 75]
[50.5, 56.0, 61.5, 67.0, 72.5, 78.0]

利用def函数,分别使用循环和递归求前一百的和

def sum_number1(n):
    s = 0
    for i in range(1,n+1):
        s += i 
    return s
def sum_number2(n):
    if n>0:
        s = n + sum_number2(n-1)
        return s
    else:
        return 0 
print("循环求和:",sum_number1(100),end="   ")
print("递归求和:",sum_number2(100))
>>> 
循环求和: 5050   递归求和: 5050

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值