1. 用python求解函数的极值,求实现代码
python有个符号计算的库叫sympy,可以直接用这个库求导数然后解导数=0的方程,参考代码如下:
from sympy import *
x = symbols('x')
y = (x-3)**2+2*sin(x)-3*x+1
eq = diff(y, x)
solve(eq, x)
2. 求python的list的差值
要完全避免for,连列表表达式族圆游中使用for都不可以的话,主要就靠functools的rece了。
3. 用python求每个行电话号码对应的时间最大值和最小值的差值
import datetime
import time
# 给你时间处理的方法,其它你自己应该能处理了吧。
# 将时间字符串转变成时间元组
t1 = time.strptime('2022/02/12 12:30','%Y/%m/%d %H:%M')
t2 = time.strptime('2022/02/12 12:24','%Y/%m/%d %H:%M')
# 将时间元组转换成日期类型
d1 = datetime.datetime(*t1[:6])
d2 = datetime.datetime(*t2[:6])
# 计算时间差
dm = d2-d1
# 两个时间相差的秒数,有正与负。什么意思不用说了吧。
se = dm.total_seconds()
print('总秒数:',se,'\n',se//60,'分',se%60,'秒')
4. 用python如何求两整数数之差
你好,
代码如下:
------
a
=
[10,
8,
2,
45,
69,
38,
11,
15]
#假设该列表为需要输入的一组数
a.sort(reverse
=
true)
#首先对这组数进行从大到小的排序
print
a
#输出排序结果
min
=
a[0]
#令min变量记录该列表中最大的值
for
i
in
range(
len(a)
-1
):
#i用来控制列表下标,
元素个数-1为了防止下面的相减越界
if
a[i]
-
a[i+1]
<
min:
#当前一个数减后一个小于当前min里的值时,
更新最小值
min
=
a[i]
-
a[i+1]
print
min
------
运行结果:
>>>
[69,
45,
38,
15,
11,
10,
8,
2]
1
>>>
5. python求一组数组最大值,最小值,平均值
Python的数组就是列表。比如对列表ls=[1,2,3,4,5,6]来处理。
sum(ls)#返回列表总和
max(ls)#返回列表里最大值
min(ls)#返回列表里最小值
len(ls)#返回列表长度
sum(ls)/len(ls)#返回列表的平均值
(sum(ls)-max(ls)-min(ls))/(len(ls)-2)#返回比赛评分常用的规则,去掉一个最高分,去掉一个最低分,再求平均分。
6. 用python求数据表中数据的均值与方差
以下为代码:
numstr = input("请输入全部数据:用英文逗号(,),中文逗号(,),
空格( ),制表符(tab键)或换行(请一次性复制过来)中的一种统一分隔数据:")
if "," in numstr:
numlist = numstr.split(",")
elif "," in numstr:
numlist = numstr.split(",")
elif " " in numstr:
numlist = numstr.split(" ")
elif " " in numstr:
numlist = numstr.split(" ")
elif " " in numstr:
numlist = numstr.split(" ")
else:
numlist = [numstr]
numlist = list(map(lambda x:x.strip(",").strip(",").
strip(" ").strip(" ").strip(" "), numlist))
for i in numlist.():
try:
a = float(i)
except:
numlist.remove(i)
print("已过滤字符串:%s"%i)
#好了,上面很多只是方便用户而已(但还是有一些有用的),主要是下面
numlist = list(map(lambda x:float(x), numlist))#所有字符串转为浮点
print("最终数列:",numlist)#输出最终数列,进行核对
average = sum(numlist)/len(numlist)#用数列和除以出列长度得到平均数
variance = 0#方差,先记为0
for i in numlist:#遍历列表
variance += (i - average) ** 2#反正就是公式对吧,先加进去
variance /= len(numlist)#还是公式,那一长串还得除以一个数列长度
print("均值:%.2f 方差:%.2f"%(average, variance))#分两行输出
以下为输出效果:
请输入全部数据:用英文逗号(,),中文逗号(,),空格( ),制表符(tab键)或换行(请一次性复制过来)中的一种统一分隔数据:38,22,99,10,99,7, 25,,40
已过滤字符串:
最终数列: [38.0, 22.0, 99.0, 10.0, 99.0, 7.0, 25.0, 40.0]
均值:42.50
方差:1181.75
以下为解析:
平均值的思路就是总和除以列表长度,方差的思路就是把所有的(x-均值)²加起来,最后再除以一个长度即可。
本程序的优点:输入时逗号后出现空格与不小心多打逗号等情况都不会出问题,可以接受小数,可以先输出最终数列以供核对。