首页/文章/ 详情

通过案例学Python之判断属相

7月前浏览2972

本文摘要(由AI生成):

本文介绍了中国传统文化中的十二生肖,并通过Python编程实践展示如何根据年份计算对应生肖。文章强调了学习编程的重要性,提醒读者学习编程需要耐心和毅力。通过学习如何计算生肖,读者可以了解中国文化并提升编程技能,文章对促进文化交流和个人技能提升具有参考价值。

1 概述

十二生肖,又叫属相,是中国与十二地支相配以人出生年份的十二种动物,包括鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪。十二生肖以十二年为周期分配不同的动物, 一个十二年的周期是如下表所示。2001年是蛇年,2013年是另一个蛇年,2008年是鼠年,2020年是另一个鼠年。

2 算法实

将某一年份与12作求余运算。若余数为0,则该年份为猴年;若余数为11,则该年份为羊年。

编写一个程序,从用户那里读取一年并显示对应的属相。程序应在任何年份都能正常运行,而不仅仅是表中列出的那些。python代码如下:



































year = int( input("输入一个年份: ") )
if year % 12 == 8:    animal = "龙"elif year % 12 == 9:    animal = "蛇"elif year % 12 == 10:    animal = "马"elif year % 12 == 11:    animal = "羊"elif year % 12 == 0:    animal = "猴"elif year % 12 == 1:    animal = "鸡"elif year % 12 == 2:    animal = "狗"elif year % 12 == 3:    animal = "猪"elif year % 12 == 4:    animal = "鼠"elif year % 12 == 5:    animal = "牛"elif year % 12 == 6:    animal = "虎"elif year % 12 == 7:    animal = "兔"
print( "%d 年是 %s" % (year, animal) + "年" )                                                                                                                    

输入2021得到的结果是:


学习编程是个长期的过程,网上那些快速成功的案例并不是常态,它给我们呈现的只是结果,而不是那之前漫长而乏味的过程。谁都会有感到枯燥的时候,一个问题久攻不下难免的,问题是你能否换其他事情平静之后再回过头来继续你之前枯燥的事情,如果还觉得枯燥那可能是你真的就不喜欢,如果可以继续那就继续!


来源:数值分析与有限元编程
python
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-04-02
最近编辑:7月前
太白金星
本科 慢慢来
获赞 5粉丝 15文章 326课程 0
点赞
收藏
作者推荐

数值积分|第二类反常积分

1 概述第二类反常积分是值积分区间包含奇异点(singular points)。常规计算方法是将积分积分区间在奇异点内收,然后按照定积分来处理,再将计算结果取极限。如图1所示:2 算法实现如图2所示:a为奇异点,在a附近划分一个子区间 ,长度为 ,将其一分为二,中点为 ,右半部分参与积分计算,再将左半部分 二等分,中点为 ,右半部分参与积分计算,如此下去,直到误差满足要求。python代码如下:import math### 第二类反常积分数值分析### y = 1/sqrt(x) ### 积分区间(0, 1]def Func(x): return 1/ math.sqrt(x) def Improp2(Func, a, b, eps = 1e-6):### ### a为区间的左端点,是奇异点###子区间积分时,还要调用自适应梯形公式,这里可以任选方法。比如辛普森公式 h0 = 0.1e0 * (b-a) #子区间长度 s = 0e0 h = h0 s1 = 1e0 while(math.fabs(s1) > eps * math.fabs(s)): h *= 0.5 # 半区间 x = a + h s1 = AdaptiveTrapzCtrl(Func,x,x+h,eps) s += s1 a += h0 s += AdaptiveTrapzCtrl(Func, a, b, eps ) return s ### 自适应梯形公式求积分 def AdaptiveTrapzCtrl(Func, a, b, eps = 1e-6): kmax = 9000 #最大迭代步数 h = b-a # 积分区间 n = 1 t0 = 0.5*h*(Func(a) + Func(b)) for k in range(1,kmax+1): sumf = 0 for i in range(1,n+1): sumf += Func(a+(i-0.5)*h) t = 0.5*(t0 + h*sumf) if (k > 1): if (math.fabs(t-t0) <= eps*math.fabs(t)): break if (math.fabs(t) <= eps and math.fabs(t) <= math.fabs(t-t0)): break h *= 0.5 n *= 2 t0 = t if (k >= kmax): print("已经达到最大迭代步数!") return t s = Improp2(Func, 0, 1, eps = 1e-6)print(s) 输出结果:第二类反常积分的数值算法大致思路就是在奇异点附近划分一个子区间,将这个子区间二等分,将其中之一积分,剩下的再二等分,将其中之一积分,如此下去,不断扩展积分区间,若扩展前后的积分的相对误差满足要求,则停止计算。★★★★往期相关★★★★数值积分|第一类反常积分数值积分|中点法则(Midpoint Rule)数值积分|龙贝格公式数值积分|自适应辛普森积分公式数值积分|自适应梯形积分数值积分|牛顿-柯特斯公式数值积分|高斯积分数值积分|泰勒(Taylor)公式求积分数值积分| 辛普森公式Python实现辛普森公式来源:数值分析与有限元编程

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈