五行计算器,五行计算器怎么读

Python的简洁艺术:五行以内代码完成任务

引言

Python是一种以直接的语法和高效能而闻名的编程语言,它在初学者和专家程序员中都非常受欢迎。其设计强调可读性和简洁性,使开发者能够用更少的代码行数表达复杂的想法,不仅提高了代码的可读性,还提高了其维护性和性能。

Python的哲学:少即是多

Python的核心哲学在《Python之禅》(PEP 20)中得到了体现,它提倡在编程中追求简单和直接。Python的语法和标准库旨在促进清晰、简洁的编码。这一哲学鼓励开发者用更少、更可读的代码行实现更多功能,使代码库更易于理解和维护。

促进简洁性的一些关键特性

列表推导:提供了一种紧凑的列表处理方式。通过结合迭代、过滤和转换元素,列表推导允许在一个可读的代码行中完成大量工作。

Lambda函数:匿名函数在高阶函数(如map和filter)中使用短暂、临时函数时特别有用。

内置函数和模块:内置函数(如map、filter)和模块(如itertools)提供了强大但简洁的数据操作方式。

with语句:简化了像文件流这样的资源管理,确保资源以最少的代码得到妥善管理和释放。

代码示例:用更少的代码做更多的事

示例 1:生成斐波那契序列

任务:生成斐波那契序列的前10个数字。

def fibonacci(n): sequence = [0, 1] for _ in range(2, n): sequenceend(sequence[-1] + sequence[-2]) return sequenceprint(fibonacci(10))

这个函数优雅地生成了斐波那契序列,并且考虑了可读性。

示例 2:优雅的文件数据提取

任务:提取文本文件每行的第一个单词。

first_words = []with open('file.txt') as file: for line in file: first_wordsend(line.split()[0])

一种清晰简洁的从文件中提取数据的方法。

示例 3:一行代码实现字典反转

任务:在一行代码内反转字典中的键和值。

def invert_dict(original_dict): return {value: key for key, value in original_dict.items()}inverted_dict = invert_dict({'a': 1, 'b': 2})

使用推导式进行简单易读的字典反转。

示例 4:实现迷你计算器

任务:创建一个基本算术运算的迷你计算器。

def calculate(op, a, b): operations = {"+": a + b, "-": a - b, "*": a * b, "/": a / b} return operations.get(op, "Invalid operation")print(calculate('+', 3, 4))

一个五行内的迷你计算器,兼顾简洁性和清晰性。

示例 5:快速图像处理

任务:将图像文件转换为灰度图。

from PIL import Imagedef to_grayscale(image_path): with Image.open(image_path) as img: imgnvert('L').save('grayscale_image.jpg')to_grayscale('image.jpg')

使用Python的PIL库以清晰的方式转换图像为灰度图。

过度简洁的陷阱

虽然在Python中简洁是一种美德,但平衡它与可读性至关重要。过于复杂的单行代码可能变得晦涩难懂,违背了Python清晰易读的初衷。为了简洁而牺牲清晰是不可取的。

结论

简洁的Python编程提供了诸多好处,比如提高可读性,简化维护等等。Python的简单和力量在于它能够用几行精心编写的代码表达复杂的操作,体现了编程的美学品位。

利用简单公式把生日转换生辰八字

本文将会介绍利用极简公式,将生日转换成天干地支,熟悉公式前,一些基础知识必须熟记!

十天干配数:

甲1、乙2、丙3、丁4、戊5、己6、庚7、辛8、壬9、癸10或0。

十二地支配数:

子1、丑2、寅3、卯4、辰5、巳6、午7、未8、申9、酉10、戌11、亥12或0。

十二月令:

立春(公历2月3-5日)、惊蛰(公历3月5-7日)、清明(公历4月4-6日)、

立夏(公历5月5-7日)、芒种(公历6月5-7日)、小暑(公历7月6-8日)、

立秋(公历8月7-9日)、白露(公历9月7-9日)、寒露(公历10月8-9日)、

立冬(公历11月7-8日)、大雪(公历12月6-8日)、小寒(公历1月5-7日)。

十二月建:

正月立春建寅,二月惊蛰建卯,三月清明建辰,

四月立夏建巳,五月芒种建午,六月小暑建未,

七月立秋建申,八月白露建酉,九月寒露建戌,

十月立冬建亥,冬月大雪建子,腊月小寒建丑。

十二时辰:

子时23~1点,丑时1~3点,寅时3~5点,卯时5~7点,辰时7~9点,巳时9~11点,午时11~13点,未时13~15点,申时15~17点,酉时17~19点,戌时19~21点,亥时21~23点。

闰年:

四年1闰,百年不闰,四百年再闰;年份能被4整除即为闰年,而整百年的年份要被400整除才为闰年。(例:1900年是平年,1904年是闰年。)

修正值:

1月修正值+1,(逢闰年1月修正值+0)

2月修正值+2,

3月修正值+0,

4月、5月修正值+1,

6月、7月修正值+2,

8月修正值+3,

9月、10月修正值+4,

11月、12月修正值+5。

熟练掌握以上知识,四柱八字中月令及时支即可一目了然,1分钟可以将90%以上的生日转换成天干地支。

现在我们正式进入公式:

以2000年2月20日23:15为例

年干:

(年份-3)÷10=所得余数;

例:(2000年-3)÷10=199余7,7对应的天干是庚;

年支:

(年份-3)÷12=所得余数;

例:(2000年-3)÷12=166余5,5对应的地支是辰;

年柱:庚辰

月干:

(年干×2+月令)÷10=所得余数;

例:(庚7×2+正月1)÷10=1余5,5对应的天干是戊;

月令(月支):

请参照十二月令;例:2月20日即属正月立春时令建寅,正月代数为1;

月柱:戊寅

日元(日干):

(年份×5+年份÷4+9+日+单双月+修正值)÷60=所得余数个位;

(2000年前取十位,2000年后取百位;单月+0,双月+30)

例:2000年2月20日,年100×5+年100÷4+9+20(日)+30(双月)+2(2月修正值+2)÷60=9余46,取余数46个位数为6,6对应的天干为己;

日支:

日元所得余数(余数不足12直接取余数)÷12=所得余数;

例:日元余数46÷12=3余10,10对应的地支为酉;

日柱:己酉

时干:

日干×2+时支-2=所得余数个位;

例:日干6×2+1时支-2=11,取11个位数1,1对应的天干是甲;

时支:

请参照十二时辰;23:15为夜子时,子代数为1;

时柱:甲子

由此得出:2000年2月20日23:15 四柱八字为:庚辰 戊寅 己酉 甲子

鉴于闰年平年、单月双月、夜子时晨子时等时间,下面我们多举几个特例:

一、1998年1月23日00:45 (因立春才是新年,1月23日即属腊月小寒时令,八字出生年柱则为1997年,其它柱依然以1998年计算)

年干:(1997-3)÷10=199余4,4对应的天干为丁;

年支:(1997-3)÷12=166余2,2对应的地支为丑;

月干:(年干4×2+月令12)÷10=2余0,0对应的天干为癸;

月令:请参照十二月令,1月23日即属腊月小寒时令建丑,腊月代数为12;

日元:年98×5+年98÷4+9+23(日)+0(单月)+1(1月修正值+1)÷60=9余7,7对应的天干为庚;

日支:日元余数7对应的地支为午;

时干:日干7×2+1时支-2=13,取13个位数3,3对应的天干是丙;

时支:请参照十二时辰;00:45为晨子时,子代数为1;

由此得出:1998年1月23日00:45 四柱八字为:丁丑 癸丑 庚午 丙子

二、1996年10月30日 11:45

年干:(1996-3)÷10=199余3,3对应的天干为丙;

年支:(1996-3)÷12=166余1,1对应的地支为子;

月干:(年干3×2+月令9)÷10=1余5,5对应的天干为戊;

月令:请参照十二月令,10月30日即属九月寒露时令建戌,九月代数为9;

日元:年96×5+年96÷4+9+30(日)+30(双月)+4(10月修正值+4)÷60=9余37,取余数37个位数为7,7对应的天干为庚;

日支:日元余数37÷12=3余1,1对应的地支为子;

时干:日干7×2+7时支-2=19,取19个位数9,9对应的天干是壬;

时支:请参照十二时辰;11:45为午时,午代数为7;

由此得出:1996年10月30日 11:45 四柱八字为:丙子 戊戌 庚子 壬午

三、2004年1月1日00:00(因立春才是新年,1月1日即属冬月大雪时令,八字出生年柱则为2003年,其它柱依然以2004年计算)

年干:(2003-3)÷10=200余0,0对应的天干为癸;

年支:(2003-3)÷12=166余8,8对应的地支为申未;

月干:(年干0×2+月令11)÷10=1余1,1对应的天干为甲;

月令:请参照十二月令,1月1日即属冬月大雪时令建子,冬月代数为11;

日元:年104×5+年104÷4+9+1(日)+0(单月)+0(逢闰年1月修正值+0)÷60=9余16,取余数16个位数为6,6对应的天干为己;

日支:日元余数16÷12=1余4,4对应的地支为卯;

时干:日干6×2+1时支-2=11,取11个位数1,1对应的天干是甲;

时支:请参照十二时辰;00:00为子时,子代数为1;

由此得出:1996年10月30日 11:45 四柱八字为:癸未 甲子 己卯 甲子

*所有公式的余数要用笔算,不可以用计算器!!!

*另外由于学派不同,针对夜子时,晨子时的补充公式,供大家参考:

时干=日干×2+时支,(晨子时-1,夜子时11),如果和大于10,则取个位数。

此系列公式可以将绝大部分日期转换为四柱八字,因月令时节和公历时间转换的不确定性,每当月令转换之际的日期还是建议参考万年历。

希望本文能帮助有需要之人,头条G夫人,转载请注明出处!谢谢!

  • 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件举报,一经查实,本站将立刻删除。
  • 本文地址:https://www.csxsg.com/forum/20240330/1709220355383422.html
上一篇:五格数理计算,五格数理计算法
下一篇:五格剖相法,五格剖相法的吉数和吉凶记算法

网友推荐