Python学习——函数

函数定义

使用def定义函数。

def myfunction():
    print('my function')

myfunction()  #my function

参数

参数定义在函数“()”内,多个参数由“,”隔开。
可以定义默认参数,当没有值传递时使用默认参数。

def sum(num1=0,num2=1):
    result = num1 + num2
    print(result)

sum(3,5)  #8
sum() #1

关键字参数可以通过命名来指定其中的参数。(名字并非位置)

def func(a=1,b=2,c=3):
    print('a = ',a,'b = ',b,'c = ',c)

func(3,5)        #('a = ', 3, 'b = ', 5, 'c = ', 3)
func(a=8,c=10)   #('a = ', 8, 'b = ', 2, 'c = ', 10)
func(b=2,a=0)    #('a = ', 0, 'b = ', 2, 'c = ', 3)

可变参数使用“*”定义,可以一次传递多个参数。

def number(*num):
    print('个数:',len(num))  #6
    print('参数2:',num[1])   #2

number(1,2,3,4,5,6)

返回

返回值使用return。
如果没有写return或return没有搭配其他值,则返回None。

def sum(num1,num2):
    result = num1 + num2
    return(result)

print(sum(3,5))  #8

函数文档

记录程序的内容使其更容易理解,并且可以通过调用“.doc”查看。

def sum(num1,num2):
    '返回数值的和'
    result = num1 + num2
    return(result)

print(sum(3,5))  #8
print(sum.__doc__)  #返回数值的和

局部与全局变量

函数内定义的变量为局部变量。
可以使用global语句在函数内声明修改全局变量。

a=10
def func():
    global a
    a=5
    print(a)  #5

func()

内嵌函数

内部函数的作用域都在外部函数之内,故不能在外部函数外调用内部函数

def func():
    print('调用func()')
    def func1():
        print('调用func1()')
    func1()

func()

#调用func()
#调用func1()

闭包

def funx(x):
    def funy(y):
        return x * y
    return funy

print(funx(8)(5))    #40

匿名函数

使用lambda表达式,冒号前是变量,冒号后是表达

def ds(x):
    return 2 * x + 1
print(ds(5))  # 11

lambda x : 2 * x + 1
g = lambda x : 2 * x + 1
print(g(5))   # 11

内置函数

filter过滤器,返回为True的内容

def odd(x):
    return x % 2

temp = range(10)
show = filter(odd,temp)
print(list(show))   #[1, 3, 5, 7, 9]

使用匿名函数,一个语句实现

print(list(filter((lambda x : x % 2 ),range(10)))) #[1, 3, 5, 7, 9]

递归

满足以下两点:

(1)有调用函数自身的行为
(2)有一个正确的返回条件

修改默认递归层数

import sys
sys.setrecursionlimit(1000)

递归实现数字阶乘求解

def factorial(n):
    if n == 1:
        return 1
    else:
        return n*factorial(n-1)  
print(factorial(5))  #120
### Python 函数用于计算思维训练 #### 方法和示例 Python 提供了一种强大的方式来进行计算思维训练,特别是通过函数的设计与实现。函数不仅有助于代码的模块化设计,还促进了逻辑思考能力的发展。 #### 问题分解 一个问题可以被拆解成更小的部分以便更容易解决。例如,在处理复杂的数据集时,可以通过编写多个小型专用功能来逐步解决问题[^1]。下面是一个具体的例子: 假设有一个需求是要找出列表中所有偶数的位置索引。这个问题可以通过构建辅助函数 `is_even` 来判断单个数字是否为偶数,再利用另一个遍历整个列表并收集符合条件项位置的功能完成最终目标。 ```python def is_even(number): """Check if a number is even.""" return number % 2 == 0 def find_indices_of_evens(lst): """Find indices of all even numbers in the list.""" result = [] for index, value in enumerate(lst): if is_even(value): result.append(index) return result ``` 这段代码展示了如何将大任务分割成易于管理和理解的小部分——这正是计算思维的核心之一。 #### 自定义函数的应用 除了上述提到的问题分解技巧外,还可以创建自定义函数以满足特定的需求。比如想要统计一段文字里单词的数量,就可以按照以下步骤操作[^3]: 1. 定义一个新的函数接受字符串作为输入; 2. 使用内置 split() 方法把句子切分成词组; 3. 计算得到的结果集合大小即代表总共有多少个不同词语; 这里给出完整的解决方案如下所示: ```python def word_count(text): words = text.split() unique_words = set(words) return len(unique_words) example_text = "This is an example sentence with some repeated words like this and that" print(word_count(example_text)) ``` 此程序片段说明了怎样运用自定义函数有效地解决了实际生活中的一个小挑战。 #### 实现加法运算器 为了进一步展示 Python 函数对于培养计算思维方式的重要性,考虑这样一个场景:开发一个简单的计算器应用程序,其中一部分负责执行两数值相加的任务。该过程涉及到了基本算法的理解以及良好的编码习惯养成等方面[^4]。 ```python def add_numbers(a, b): """Add two given numbers together""" sum_result = a + b return sum_result num1 = float(input("Enter first number: ")) num2 = float(input("Enter second number: ")) result = add_numbers(num1, num2) print(f"The addition of {num1} and {num2} equals to {result}") ``` 以上实例强调了函数在简化重复工作流程方面的作用,同时也体现了结构清晰、易于调试的优点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值