您现在的位置是:首页 > 技术教程 正文

python梅花易数,python算卦

admin 阅读: 2024-03-19
后台-插件-广告管理-内容页头部广告(手机)

2024-02-28

python梅花易数,python算卦,梅花易数的三数起卦

前言:本来想搜来直接复制的,结果看目前找到的都有些问题,特意去看了梅花易数的视频,写了个。想法被拿捏的死死的,不如相信算卦

  1. # 数字对应的卦名
  2. num_gua_map = {1: '乾', 2: '兑', 3: '离', 4: '震', 5: '巽', 6: '坎', 7: '艮', 0: '坤'}
  3. # 卦名对应的图案
  4. gua_pic_map = {'乾': '☰', '兑': '☱', '离': '☲', '震': '☳', '巽': '☴', '坎': '☵', '艮': '☶', '坤': '☷'}
  5. # ('乾☰', '兑☱', '离☲', '震☳', '巽☴', '坎☵', '艮☶', '坤☷')
  6. gua_yao_map = {
  7. '乾': (1, 1, 1), # 1
  8. '兑': (0, 1, 1), # 2
  9. '离': (1, 0, 1), # 3
  10. '震': (0, 0, 1), # 4
  11. '巽': (1, 1, 0), # 5
  12. '坎': (0, 1, 0), # 6
  13. '艮': (1, 0, 0), # 7
  14. '坤': (0, 0, 0), # 8
  15. }
  16. # 根据字典的值获取键名
  17. def get_key_name(dictionary, value):
  18. for key in dictionary.keys():
  19. if dictionary[key] == value:
  20. return key
  21. return None
  22. # 动爻过程, 生成变卦, 如[震,坎]
  23. def dong_yao(yao06, dd1):
  24. yao6 = list(yao06) # 6行的爻
  25. if dd1 == 0: # 传参是0-5
  26. dd1 = 6
  27. # 动爻是从下面开始数的
  28. yao6[-dd1] = 0 if yao6[-dd1] == 1 else 1 # 变化那一行
  29. bian_shang = yao6[0:3] # 前3行
  30. bian_xia = yao6[3:6] # 后3行
  31. bian_shang = get_key_name(gua_yao_map, tuple(bian_shang))
  32. bian_xia = get_key_name(gua_yao_map, tuple(bian_xia))
  33. return bian_shang, bian_xia
  34. # ==================================================================
  35. a1 = 301548
  36. a2 = 295785
  37. a3 = 20240229
  38. # ==================================================================
  39. aa1 = a1 % 8
  40. aa2 = a2 % 8
  41. aa3 = a3 % 6
  42. print('---三个数字', a1, a2, a3)
  43. print('---取余后', aa1, aa2, aa3)
  44. gua1 = num_gua_map[aa1] # 如: 乾
  45. gua2 = num_gua_map[aa2] # 如: 坤
  46. pic1 = gua_pic_map[gua1] # 如: ☳
  47. pic2 = gua_pic_map[gua2] # 如: ☴
  48. print('---【本卦】 %s%s %s%s' % (gua1, gua2, pic1, pic2))
  49. shang_xia_6 = gua_yao_map[num_gua_map[aa1]] + gua_yao_map[num_gua_map[aa2]] # 生成6行的爻
  50. print('---六行爻', shang_xia_6) # 如: (0, 0, 1, 1, 1, 0)
  51. bian1, bian2 = dong_yao(shang_xia_6, aa3) # 动爻过程, 生成变卦, 如[震,坎]
  52. bian_pic1 = gua_pic_map[bian1] # ☳
  53. bian_pic2 = gua_pic_map[bian2] # ☵
  54. print('---【变卦】 %s%s %s%s' % (bian1, bian2, bian_pic1, bian_pic2))

输出返回如:

---三个数字 301548 295785 20240229
---处理后 4 1 3
---【本卦】 震乾  ☳☰
---六行爻 (0, 0, 1, 1, 1, 1)
---【变卦】 震兑  ☳☱

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索