【21天python打卡】第17天 python经典案例(3)

简介: 大家好,今天是21天python打卡第17天,今天我们继续说说python的经典案例。本文重点说明了math函数和def函数的使用方法。

天天向上的力量

我们通过几个不同的案例,来学习不同场景下的应用。

我们先介绍什么是math函数

Python math 模块提供了许多对浮点数的数学运算函数。需要注意的是,这些函数一般是对平台 C 库中同名函数的简单封装, 所以一般情况下, 不同平台下计算的结果可能稍微地有所不同, 有时候甚至有很大出入。


主要功能有:


幂数:幂次方、平方根


对数:2、10、e相关的对数操作


圆相关:π、弧度与角度的转换


三角函数:正三角函数、反三角函数


其他常用:小数的整数部分、向上取整、向下取整、两个数的最大公约数、取余数...


幂数


幂与平方根


# pow(x, y):返回x的y次方


print(math.pow(2, 4)) # 2**4


# ldexp(x, i):返回x*(2**i)的值


print(math.ldexp(5, 2)) # 5*(2**2)=20.0


# sqrt(x):求x的平方根


print(math.sqrt(16)) # 4.0


# factorial(x):取x的阶乘的值


print(math.factorial(5)) # 5*4*3*2*1 # 120


# hypot(x, y):得到(x**2+y**2)的平方根


print(math.hypot(3, 4)) # 5


常数e相关


import math


# 常数e


math.e # 2.718281828459045


# exp(x):返回常数e的x次方


math.exp(2) # 7.38905609893065,相当于math.e**2


# expm1:返回常数e的x次方的值减1


math.expm1(1) # 1.718281828459045,相当于math.exp(1) - 1


对数


# log2(x):返回x的基2对数


print(math.log2(128)) # 7


# log10(x):返回x的以10为底的对数


print(math.log10(100)) # 2


# log(x, base):返回x的自然对数,默认以e为基数,base参数给定时,将x的对数返回给定的base,计算式为:log(x)/log(base)


print(math.log(256, 4)) # 4


# log1p(x)::返回x+1的自然对数(基数为e)的值


print(math.log1p(5))


圆相关


# pi:常数π,圆周率


print(math.pi) # 3.141592653589793


angle = 30 # 30度


# radians:把角度x转换成弧度


print(math.radians(angle)) # 0.5235987755982988


print(30*math.pi/180) # 效果相同


# degrees:把x从弧度转换成角度


temp = math.radians(angle)


print(math.degrees(temp)) # 29.999999999999996


三角函数


sin、cos、tan


math 模块对正三角函数的计算,变量是弧度,所以在计算时需要先将角度转换为弧度


angle = 30 # 30度


radian = math.radians(angle) # 角度转换成弧度


print(math.sin(radian))


print(math.cos(radian))


print(math.tan(radian))


asin和acos和atan


math 模块对反三角函数的计算,返回值是弧度


h = math.asin(0.5) # sin(30) = 0.5


print(math.degrees(h)) # 30.000000000000004


h = math.acos(0.5) # cos(60) = 0.5


print(math.degrees(h)) # 60.00000000000001


h = math.atan(1) # tan(45) = 1


print(math.degrees(h)) # 45.0


sinh和cosh和tanh,asinh和acosh和atanh


双曲正弦、余弦、正切,反双曲正弦、余弦、正切


其他


# trunc(x):返回x的整数部分


print(math.trunc(8.3)) # 8


# ceil(x):取大于等于x的最小的整数值,如果x是一个整数,则返回x


print(math.ceil(10.2)) # 11


# floor(x):取小于等于x的最大的整数值,如果x是一个整数,则返回自身


print(math.floor(15.3)) # 15


# fabs(x):返回x的绝对值


print(math.fabs(-13)) # 13.0


# modf(x):返回由x的小数部分和整数部分组成的元组


print(math.modf(132.333)) # (0.3329999999999984, 132.0)


# copysign(x, y):把y的正负号加到x前面,可以使用0


print(math.copysign(10 ,-15)) # -10.0


# fmod(x, y):得到x/y的余数,其值是一个浮点数


print(math.fmod(15, 2)) # 1.0


# gcd(x, y):返回x和y的最大公约数


print(math.gcd(8, 100)) # 4


# frexp(x):返回一个元组(m,e),其计算方式为:x分别除0.5和1,得到一个值的范围


print(math.frexp(10))


# fsum(x):对迭代器里的每个元素进行求和操作


print(math.fsum([1, 2, 3, 4])) # 10.0


# isfinite(x):如果x是正无穷大或负无穷大,则返回True,否则返回False


#


# isinf(x):如果x是正无穷大或负无穷大,则返回True,否则返回False


#


# isnan(x):如果x不是数字True,否则返回False


print(math.isnan(1.222))


后面我们还用到def函数,这里就简单介绍一下。


1.def函数 定义函数,调用函数。就是对一个新函数的自定义,有简单的函数也有复杂的函数。

2.基本用法def function_name(parameters): return

3.def使用位置 在这个关键字之后是标识函数的名字; 其次是在一对括号中可以附上一些变量名; 最后在行的末尾是冒号。接下来是语句块--函数的一部分。

4.使用实例def sum_2_nums(a,b): #def 定义函数 result = a+b print('%d+%d=%d'%(a,b,result)) num1 = int(input('请输入第一个数字:'))


天天向上的力量(1)

#DayDayUp365.py
import math
dayup = math.pow((1.0 + 0.001), 365) # 每天提高0.001
daydown = math.pow((1.0 - 0.001), 365) # 每天荒废0.001
print("向上: %.2f, 向下: %.2f."%(dayup, daydown))

天天向上的力量(2)

#DayDayUp365.py
import math
dayup = math.pow((1.0 + 0.005), 365) # 每天提高0.005
daydown = math.pow((1.0 - 0.005), 365) # 每天荒废0.005
print("向上: %.2f, 向下: %.2f."%(dayup, daydown))

天天向上的力量(3)

#DayDayUp365.py
import math
dayfactor = 0.01
dayup = math.pow((1.0 + dayfactor), 365) # 提高dayfactor
daydown = math.pow((1.0 - dayfactor), 365) # 放任dayfactor
print("向上: {:.2f}, 向下: {:.2f}.".format(dayup, daydown))

天天向上的力量(4)

#DayDayUp365.py
dayup, dayfactor = 1.0, 0.01
for i in range(365):
    if i % 7 not in [6, 0]:
        dayup = dayup * (1 + dayfactor)
    else:
        dayup = dayup * (1 - dayfactor)
print("向上5 天向下2 天的力量: {:.2f}.".format(dayup))

天天向上的力量(5)

#DayDayUp365.py
def dayUP(df):
    dayup = 1.0
    for i in range(365):
        if i % 7 in [6, 0]:
            dayup = dayup * (1 - 0.01)
        else:
            dayup = dayup * (1 + df)
    return dayup
dayfactor = 0.01
while (dayUP(dayfactor)<37.78):
    dayfactor += 0.001
print("每天的努力参数是: %.3f."%dayfactor)

获取星期字符串

代码实现

weekstr = "星期一星期二星期三星期四星期五星期六星期日"
weekid = eval(input("请输入星期数字(1-7): "))
pos = (weekid - 1)*3
print(weekstr[pos: pos+3])

凯撒密码

代码实现

plaincode = input("请输入明文: ")
for p in plaincode:
    if ord("a") <= ord(p) <= ord("z"):
        print(chr(ord("a") + (ord(p) - ord("a") + 3)%26),end='')
    else:
        print(p, end='')

基本的多行文本进度条

代码实现

#TextProgress Bar.py
import time
scale = 20
print("------执行开始------")
for i in range(scale+1):
    a, b = '**' * i,'..' * (scale - i)
    c = (i/scale)*100
    print("%{:^3.0f}[{}->{}]" .format (c, a, b))
    time.sleep(0.1)
print("------执行结束------")

单行动态刷新

代码实现

#TextProgressBar.py
import time
for i in range(101):
    print("\r{:2}%".format(i), end="")
    time.sleep(0.05)

带刷新的文本进度条

代码实现

#TextProgress.py
import time
scale = 50
print("执行开始".center(scale//2,'-'))
t = time.clock()
for i in range(scale+1):
    a = '*' * i
    b = '.' * (scale - i)
    c = (i/scale)*100
    t -= time.clock()
    print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,-t),end='')
    time.sleep(0.05)
print("\n"+"执行结束".center(scale//2,'-'))

今天就分享到这里,下一篇我们继续分享python案例。

相关文章
|
23天前
|
数据采集 存储 数据挖掘
【优秀python数据分析案例】基于Python书旗网小说网站数据采集与分析的设计与实现
本文介绍了一个基于Python的书旗网小说网站数据采集与分析系统,通过自动化爬虫收集小说数据,利用Pandas进行数据处理,并通过Matplotlib和Seaborn等库进行数据可视化,旨在揭示用户喜好和市场趋势,为图书出版行业提供决策支持。
【优秀python数据分析案例】基于Python书旗网小说网站数据采集与分析的设计与实现
|
23天前
|
数据采集 数据可视化 算法
【优秀python案例】基于Python的豆瓣电影TOP250爬虫与可视化设计与实现
本文设计并实现了一个基于Python的豆瓣电影TOP250爬虫与可视化系统,通过获取电影评分、评论并应用词云和饼图等可视化技术,为用户提供了电影评价的直观展示和深入分析。
【优秀python案例】基于Python的豆瓣电影TOP250爬虫与可视化设计与实现
|
23天前
|
数据采集 数据可视化 关系型数据库
【python案例】基于Python 爬虫的房地产数据可视化分析设计与实现
本文设计并实现了一个基于Python爬虫的房地产数据可视化分析系统,通过BeautifulSoup框架采集房源信息,使用pandas进行数据处理,MySQL存储数据,并利用pyecharts进行数据可视化,以帮助用户更直观地了解房源信息并辅助选房购房。
|
23天前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
|
23天前
|
数据采集 数据可视化 关系型数据库
【优秀python 数据分析案例】基于python的穷游网酒店数据采集与可视化分析的设计与实现
本文介绍了一个基于Python的穷游网酒店数据采集与可视化分析系统,通过爬虫技术自动抓取酒店信息,并利用数据分析算法和可视化工具,提供了全国主要城市酒店的数量、星级、价格、评分等多维度的深入洞察,旨在为旅行者和酒店经营者提供决策支持。
【优秀python 数据分析案例】基于python的穷游网酒店数据采集与可视化分析的设计与实现
|
23天前
|
数据采集 XML 数据可视化
【优秀python案例】基于Python的口红商品的爬虫与可视化的设计与实现
本文介绍了一个基于Python的京东商城口红商品爬虫与可视化系统,通过requests和lxml库抓取商品信息,使用pandas进行数据处理,matplotlib进行数据可视化,分析了口红的价格、评论数(销量)分布以及自营口红品牌的销量和商品种类。
【优秀python案例】基于Python的口红商品的爬虫与可视化的设计与实现
|
23天前
|
数据采集 自然语言处理 监控
【优秀python毕设案例】基于python django的新媒体网络舆情数据爬取与分析
本文介绍了一个基于Python Django框架开发的新媒体网络舆情数据爬取与分析系统,该系统利用Scrapy框架抓取微博热搜数据,通过SnowNLP进行情感分析,jieba库进行中文分词处理,并以图表和词云图等形式进行数据可视化展示,以实现对微博热点话题的舆情监控和分析。
【优秀python毕设案例】基于python django的新媒体网络舆情数据爬取与分析
|
23天前
|
数据采集 自然语言处理 数据可视化
优秀python系统案例】基于python Flask的电影票房数据爬取与可视化系统的设计与实现
本文介绍了一个基于Python Flask框架开发的电影票房数据爬取与可视化系统,该系统利用网络爬虫技术从豆瓣电影网站抓取数据,通过Python进行数据处理和分析,并采用ECharts等库实现数据的可视化展示,为电影行业从业者提供决策支持。
优秀python系统案例】基于python Flask的电影票房数据爬取与可视化系统的设计与实现
|
23天前
|
人工智能 BI 数据处理
【优秀python django系统案例】基于python的医院挂号管理系统,角色包括医生、患者、管理员三种
本文介绍了一个基于Python开发的医院挂号管理系统,该系统包含医生、患者、管理员三种角色,旨在优化挂号流程,提高医疗服务质量和管理效率,并通过信息化手段提升患者就医体验和医院运营决策的数据支持能力。
【优秀python django系统案例】基于python的医院挂号管理系统,角色包括医生、患者、管理员三种
|
2天前
|
大数据 机器人 数据挖掘
这个云ETL工具配合Python轻松实现大数据集分析,附案例
这个云ETL工具配合Python轻松实现大数据集分析,附案例
下一篇
云函数