python解二次函数 您所在的位置:网站首页 在线二次函数模拟器怎么用的 python解二次函数

python解二次函数

2024-07-16 00:25| 来源: 网络整理| 查看: 265

lambda 函数

最开始接触循环,我们就写了一个函数实现了1加到100。我们是这样写的:

```python

my_sum = 0

for i in range(1,101):

my_sum += i

print(my_sum)

```

就像上面写的一样,代码非常简短明朗就能实现我们的需求。但是如果我们需求变成1加到1000或者50加到100等等我们就需要用到def函数。

```python

def my_sum(x,y):

res = 0

for i in range(x,y):

res += i

return res

my_sum(50,101) #调用函数,返回3825

my_sum(1,1001) #调用函数,返回500500

```

lambda函数写起来非常简单,不需要命名函数,可以直接输出结果.经常与一些高级函数结合使用:

- lambda关键字后面跟参数,可以跟多个参数

- 参数后跟冒号,冒号后接的相当于return后面的内容

- lambda定义的是单行函数,如果需要复杂函数,还是应该选择普通函数

- lambda表达式中不能含有命令,而且仅限一条表达式

- 如果我们用lambda函数我们将两行搞定这件事情,如下:

```python

from functools import reduce #python3.x以上需要导入reduce模块

reduce(lambda x,y:x+y,range(1,101))#正确返回结果5050

```

map()函数

- map()是 Python 内置的高阶函数

- map函数一般第一个参数是一个函数,可以是内置函数,也可以是自定义函数;第二个参数一个可迭代对象

- map将接收的函数,依次作用在可迭代对象的每一个元素中中并返回一个map对象,类似于这种格式

- map对象可以转化成list,或者用遍历将他显示出来

```python

list(map(lambda x:x*2,[1,2,3]))

#返回[2, 4, 6].此函数讲[1,2,3]中每个元素都按照lambda公式要求乘以2,并用list将他们转化成了列表格式

```

```python

#利用map()函数与lambda结合,我们可以解决一个网红python题,找1000以内的水仙花数

#(“水仙花数”是一个三位数其各位数字的立方和等于该数本身)

for i in range(100,1000):

if sum(map(lambda x:int(x)**3,str(i)))==i:

print(i)

#这段简短代码可读性很高我就不一一细说了,你细品~

```

如果我们能结合自定义公式,那想找几位的水仙花数都非常easy啦,请看我的表演

```python

def shuixianhua(n): #自定义函数shuixianhua

x = 10**(n-1)

y = 10**n

res = []

for i in range(x,y):

if sum(map(lambda z:int(z)**n,str(i))) == i:

res.append(i)

return res

```

```python

shuixianhua(3) #返回[153, 370, 371, 407]

shuixianhua(4) #返回[1634, 8208, 9474]

```

递归函数

- 递归函数指函数体体内调用函数本身;

- 使用递归函数,必须设定一个基线条件,就是满足这一条件时,直接返回一个值

以下是递归的经典案例:

1.阶乘问题:用我们之前所学的内容我们可以这样解决阶乘问题

```python

#思路:先定义res变量为n,在让其一次乘以1到n-1每一个数字

def jiecheng(n):

res = n

for i in range(1,n):

res *= i

return res

jiecheng(3) #返回1*2*3的值,6

```

- 如果用递归方法实现阶乘问题,我们首先要理清她的基线条件:

- 1的阶乘为1

- 大于1的数字n,其阶乘为n依次乘以1到n-1

```python

def jc(n):

if n == 1: #如果是1,返回1

return 1

else:

return n * jc(n-1) #如果不是1,再次调用函数本身

jc(4) #返回1*2*3*4的值,24

```

2.幂问题

- 说到幂问题,要插播一个内置函数,pow(x,n),返回x的n次幂

- 然后再用普通姿势定义一个函数power,让他实现pow()的功能

```python

#思路将n个x相乘

def power(x,n):

res = x

for i in range(1,n):

res *= x

return res

power(2,3)

```

- 如果用递归方法实现幂问题,我们首先要理清她的基线条件:

- 1的0次方为1

```python

def power(x,n):

if n == 0: #如果是0,返回1

return 1

else:

return x * power(x,n-1) #如果不是0,再次调用函数本身

power(2,3) #返回8

```

3.用递归函数解决一元二次函数求解问题

```python

import math

def func(a,b,c):

delta = b**2-4*a*c

x = -b/(2*a)

if delta == 0:

print("只有一个根{}".format(x))

elif delta > 0:

x1 = x + math.sqrt(delta)/(2*a)

x2 = x - math.sqrt(delta)/(2*a)

print("有两个根,{},{}".format(x1,x2))

else:

print("无实根")

func(1,2,1)

```



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有