吐血整理Python 常用的数学运算与统计函数(附视频讲解)

Posted Amo Xiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了吐血整理Python 常用的数学运算与统计函数(附视频讲解)相关的知识,希望对你有一定的参考价值。

一、abs 函数–获取数字的绝对值 视频讲解

abs() 函数用于获取数字的绝对值,其语法格式如下:

abs(x)

参数说明:

  1. x:表示数值,参数可以是整数、浮点数或者复数;
  2. 返回值:返回数字的绝对值。如果参数是一个复数,则返回复数的模。

补充说明:设复数 z=a+bi(a,b∈R),其中规定 i 为虚数单位,且(a、b是任意实数),我们将复数中的实数a称为复数z的实部(real part),记作Re z=a;实数b称为复数z的虚部(imaginary part),记作 Im z=b。当a=0且b≠0时,z=bi,我们就将其称为纯虚数。将复数的实部与虚部的平方和的正的平方根的值称为该复数的模,记作∣z∣。复数z的模|z|= a 2 + b 2 \\sqrt[]{a^2+b^2} a2+b2
,它的几何意义是复平面上一点(a,b)到原点的距离。|z|2=(a+bi)(a-bi) 。例:

计算1:若 z=1+i,则 |z^2-2z| = ?

两个实部相等,虚部互为相反数的复数互为共轭复数(conjugate complex number)。复数z的共轭复数记作 z ‾ \\overline{z} z

Python 中的复数与数学中的复数的形式完全一致,都是由实部和虚部组成,并且使用 j 或 J 表示虚部。当表示一个复数时,可以将实部和虚部相加,例如,一个复数,实部为 3.14,虚部为 12.5j,则这个复数为 3.14+12.5j。如下图所示:
在这里插入图片描述
【示例1】获取整数与浮点数的绝对值。在获取绝对值时,比较常见的数值就是整数与浮点数,使用abs()函数获取整数与浮点数绝对值的示例代码如下:

In [1]: abs(520)  # 求整数绝对值
Out[1]: 520
In [2]: abs(-88)  #  求负数绝对值
Out[2]: 88
In [3]: abs(-88.88)  # 浮点负数绝对值
Out[3]: 88.88
In [4]: abs(0)  # 求0绝对值
Out[4]: 0

【示例2】获取复数的模。

In [5]: abs(1-2j)  # 获取1-2j复数的模
Out[5]: 2.23606797749979

In [6]: abs(1+5j)
Out[6]: 5.0990195135927845  # 获取1+5j复数的模

In [7]: abs(6*8j)  # 获取6*8j复数的模
Out[7]: 48.0

In [8]: abs(-1-1j)  # 获取-1-1j复数的模
Out[8]: 1.4142135623730951

【示例3】输出绝对值不大于3的所有整数。

num_list = [-3, -2, -1, 0, 1, 2, 9]  # 创建一组整数列表
for num in num_list:  # 遍历列表元素
    if abs(num) <= 3:  # 绝对值不大于3
        print(num, end=" ")  # 输出:-3 -2 -1 0 1 2

【示例4】abs()函数与math.fabs()函数的比较。
在这里插入图片描述

二、divmod 函数–获取两个数值的商和余数 视频讲解

divmod() 函数用于返回两个数值(非复数)相除得到的商和余数组成的元组。其语法格式如下:

divmod(x, y)

参数说明:

  1. x:被除数;
  2. y:除数;
  3. 返回值:返回由商和余数组成的元组。

【示例1】获取商和余数的元组。

print(divmod(9, 2))  # 被除数为9,除数为2 ==>(4, 1)
print(divmod(100, 10))  # 被除数为100,除数为10==>(10, 0)
print(divmod(15.5, 2))  # 被除数为15.5,除数为2==>(7.0, 1.5)

"""
说明:通过divmod()函数获取商和余数的元组时,元组中的第一个元素为商,第二个元素为余数。
提示:如果参数x和y都是整数,相当于(a//b,a%b)
如果参数x或y是浮点数,相当于(math.floor(a/b),a%b)
"""

【示例2】商和余数解决图书拆包问题。
在这里插入图片描述
示例代码如下:

books = [845, 1089, 988, 432, 675, 3246]  # 图书册数
num = 16  # 每包16册
for b in books:
    result = divmod(b, num)  # 计算商和余数
    # 输出结果
    print(str(b) + '拆分为: ' + str(result[0]) + '包' + str(result[1]) + '册')

【示例3】负数取余问题。

print(divmod(30, -8))  # (-4, -2)
print(divmod(-30, -8))  # (3, -6)
print(divmod(-30, 8))  # (-4, 2)

【示例4】将时间秒数转换为"时:分:秒"的形式。

import datetime

seconds = 3888  # 秒数

# 第一种方法
m, s = divmod(seconds, 60)
h, m = divmod(m, 60)
# 第一种方式: 1:04:48
print('第一种方式:', f'{h:d}:{m:02d}:{s:02d}')  # 格式化输出

# 第二种方法:第二种方式: 1:04:48
se = str(datetime.timedelta(seconds=seconds))
print('第二种方式:', se)

三、len 函数–获取对象的长度或项目个数

len() 函数的主要功能是获取一个(字符、列表、元组等)可迭代对象的长度或项目个数。其语法格式如下:

len(s)

参数说明:

  1. 参数 s:要获取其长度或者项目个数的对象。如字符串、元组、列表、字典等;
  2. 返回值:对象长度或项目个数。

【示例1】获取字符串长度。

# 字符串中每个符号仅占用一个位置,所以该字符串长度为34
str1 = '今天会很残酷,明天会更残酷,后天会很美好,但大部分人会死在明天晚上。'
# 在获取字符串长度时,空格也需要占用一个位置,所以该字符串长度为10
str2 = 'hello word'
print('str1字符串的长度为:', len(str1))  # 打印str1字符串长度
print('str2字符串的长度为', len(str2))  # 打印str2字符串长度
# 打印str2字符串去除空格后的长度9
print('str2字符串去除空格后的长度为:', len(str2.replace(' ', '')))

【示例2】获取列表长度。

# 在获取列表长度时,len函数不会在意列表内元素的类型
list_ = [1, 2, 3, 4, '123', 2.15]
# 同时定义两个元素类型不同的列表
list1, list2 = [1, 2, 3], ['a', 'b', 'c']
list3 = ['库里', '杜兰特', '詹姆斯', '哈登', '威少']  # 定义一个列表
print('list列表的长度为 : ', len(list_))  # 打印list列表长度
print('list1列表的长度为: ', len(list1))  # 打印list1列表长度
print('list2列表的长度为:', len(list2))  # 打印list2列表长度
print('共有', len(list3), '名球员')  # 获取列表元素个数
# 获取列表下标为1~4范围的长度,不包含下标为4的元素
print('列表中指定元素范围的长度为:', len(list_[1:4]))

【示例3】获取元组长度。

tuple1 = (1, 11, 111, 1111, 11111)  # 创建元素长度不同的元组
print('tuple1元组长度为:', len(tuple1))  # 打印tuple1元组长度
print('元组中指定元素范围的长度为:', len(tuple1[1:3]))  # 打印tuple1元组指定元素范围的长度
# 创建星期英文元组
tuple2 = ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday')
print('tuple2元组中元素长度最大为:', max(len(i) for i in tuple2))  # 打印tuple2元组中长度最大值
# 打印tuple2元组中长度最大的元素
print('tuple2元组中长度最大的元素为:', max(tuple2, key=lambda i: len(i)))
# 打印tuple2元组中长度最小的元素
print('tuple2元组中长度最小的元素为:', min(tuple2, key=lambda i: len(i)))
# 创建国际旅游胜地前四名的二维元组
tuple3 = (('威尼斯', 1), ('阿姆斯特丹运河', 2), ('马尔代夫', 3), ('迪拜', 4))
print('二维元组tuple3的长度为:', len(tuple3))  # 打印二维元组的长度
# 打印二维元组中旅游胜地名称最长的元组
print('旅游胜地名称最长的元组为:', max(tuple3, key=lambda i: len(i[0])))

【示例4】获取字典长度。

# 人物基本信息
dict_name = {'Name': 'Aaron', 'Age': 18, 'height': 1.72, 'weight': 55, 'sex': 'g'}
print('dict_name字典长度度为:', len(dict_name))  # 打印dict_name字典长度
# 使用dict()函数创建一个字典
dictionary = dict((('邓肯', '石佛'), ('吉诺比利', '妖刀'), ('帕克', '跑车')))
print('字典:', dictionary)  # 输出字典
print('字典中的元素个数为:', len(dictionary))  # 获取字典中的元素个数
# 某淘汰比赛中,前五名的参赛人员与对应编号
dict_info = {'17123': {'name': 'Lee'},
             '121234': {'name': 'Jeff'},
             '153': {'name': 'Rodriguez'},
             '16423': {'name': 'Jackson'},
             '1344349': {'name': 'Williams'}}
# 打印参赛编号最长的那位参赛者名称
print('获取数据中参赛编号最长的那位参赛者名称:',
      max(dict_info.items(), key=lambda i: len(i[0]))[1].get('name'))
# 打印赛者名称最长的那位参赛者名称
print('获取参赛者名称最长的那位参赛者名称:',
      max(dict_info.items(), key=lambda i: len(i[1].get('name')))[1].get('name'))

【示例5】计算一个字符串中包含“aeiou”这5个字符的数量。

import re


def count_vowels(str):
    # 使用正则表达式匹配所有包括aeiou的字符,然后计算长度
    return len(re.findall(r'[aeiou]', str, re.IGNORECASE))


print(count_vowels('foobar'))  # 3
print(count_vowels('gym'))  # 0

【示例6】判断列表中的元素是否有重复的。

def all_unique(lst):
    # 先将列表转化为集合,利用集合去重功能,删除重复元素,然后再和原来的列表对比

    return len(lst) == len(set(lst))


x = [1, 1, 2, 2, 3, 2, 3, 4, 5, 6]
y = [1, 2, 3, 4, 5]
print(all_unique(x))  # False
print(all_unique(y))  # True

【示例7】计算字符串的字节长度。

def byte_size(string):
    return len(string.encode('utf-8'))  # 使用encode()函数设置编码格式


print(byte_size('Hello World'))  # 11
print(byte_size('人生苦短,我用Python'))  # 27

【示例8】根据指定字符长度添加符号或字符。

# 古诗字符串
str_text = '花开不并百花丛独立疏篱趣未穷宁可枝头抱香死何曾吹落北风中'
list_text = []  # 保存筛选诗句的列表
# 通过字符串长度遍历字符串文字下标,由于0求余等于0所以需要从1开始并加1
for i in range(1, len(str_text) + 1):
    # 通过指定字符串下标的方式将字符串中文字添加至列表中
    list_text.append(str_text[i - 1])
    if i % 7 == 0:  # 每七个字为一句,此处求满足七字条件
        if i % 2 == 0:  # 偶数添加句号
            list_text.append('。\\n')
        else:  # 奇数添加逗号
            list_text.append(',\\n')
print(''.join(list_text))  # 打印将列表元素拼接成字符串

程序运行结果如下图所示:
在这里插入图片描述
【示例9】统计每天手机消费账单数量。

# 模拟账单数据
bill = {'今天': [{'time': '07:40', '金额': -6.5, '订单号': '22001407'},
               {'time': '07:54', '金额': -21, '订单号': '22001430'},
               {'time': '08:22', '金额': -11, '订单号': '22101511'}],
        '昨天': [{'time': '07:40', '金额': -6.5, '订单号': '22001447'}],
        '前天': [{'time': '07:00', '金额': -13.2, '订单号': '22001431'},
               {'time': '07:26', '金额': -10, '订单号': '22001433'},
               {'time': '08:05', '金额': -3, '订单号': '22001561'},
               {'time': '08:22', '金额': -2.5, '订单号': '22001766'}]}
for key in bill.keys():  # 遍历都有哪天的账单
    print(key, '消费了', len(bill.get(key)), '笔账单!')  # 打印每天账单的数量

程序运行结果如下图所示:
在这里插入图片描述

四、max 函数–获取可迭代对象(或元素)的最大值

max() 函数是 python 开发中使用较多的函数,主要功能为获取传入的多个参数的最大值,或者传入的可迭代对象(或之中的元素)的最大值。其语法格式如下:

max(iterable, *[, key, default])
# max(arg1, arg2, *args[, key])

参数说明:以上是关于吐血整理Python 常用的数学运算与统计函数(附视频讲解)的主要内容,如果未能解决你的问题,请参考以下文章

吐血整理!140种Python标准库第三方库和外部工具都有了

吐血整理Python体系练手项目500例(附源代码),练完可就业

吐血整理Python体系练手项目500例(附源代码),练完可显著提升python水平

吐血整理!Python常用第三方库,码住!!!

mysql常用命令整理

熬了几个通宵了,都快了吐血整理!Python常用第三方库,码住!!!