#encoding=utf-8#這是一個(gè)易經(jīng)的啟卦程序,在windows下的python3.3下創(chuàng)建'#啟卦要本著易的四原則,無事不占,不動(dòng)不占,無疑不占.不能亂占。#預(yù)測原理是,隨機(jī)生成一組6個(gè)紅球號碼,然后運(yùn)行易經(jīng)啟卦程序,如果此結(jié)果#為上上卦,那么這組號碼就被打印出來,如果不是遇繼續(xù)生成隨機(jī)數(shù),易經(jīng)啟卦原理我#用 shell 寫過一次了,這次是用python 又寫了一次,思路是一樣的,過程有差別,在#shell 中主要是操作文件,在python中主要操作的是列表和字典。def qg(): import random banyao = range(1,385)#獲取1到384的隨機(jī)數(shù)。#爻符列表 fu = []#爻的陰陽列表用數(shù)字表示。 fa = {'101': '6', '100': '2', '110': '4', '111': '8', '000': '1', '001': '5', '011': '7', '010': '3'}# 三個(gè)爻號對應(yīng)的卦序。#定義以上這些列表和字典,以供下面的代碼使用。 def qg(): suiji = random.sample(banyao,1) jiou = suiji[0] % 2 if jiou == 0: fu.append(0) else: fu.append(1) #定義一個(gè)函數(shù),獲取一個(gè)隨機(jī)數(shù)寫到上面建好的列表中. for i in range(0,6): qg()#運(yùn)行6次上面的函數(shù)。得到一整卦。 for n in range(0,6): fl = open('qg/fl.txt','a') fl.write(str(fu[5-n])) fl.close()#從最后向前讀列表數(shù)字并寫到文件fl中。 for ai in open('qg/fl.txt','r'): f2 = open('qg/f2.txt','a') f2.write(str(fa[ai[0:3]])) f2.close() f2 = open('qg/f2.txt','a') f2.write(str(fa[ai[3:6]])) f2.close() #再把地fl文件分成兩部分,去對應(yīng)字典fa,把數(shù)據(jù)寫入文件f2.txt for al in open('qg/f2.txt','r'): ac =int(al) #讀出f2.txt文件中的數(shù)據(jù),不做操做。 an = {'23':'1','00':'1','01':'2','02':'2','03':'3','04':'3','05':'3','06':'4', '07':'4','08':'5','09':'5','10':'6','11':'6','12':'7','13':'7','14':'8', '15':'8','16':'9','17':'9','18':'10','19':'11','20':'11','21':'12','22':'12'}#創(chuàng)建字典 an,把時(shí)間對應(yīng)的參數(shù)寫到字典里。 import time am = (time.strftime('%H'))#print (time.strftime('%H'))#獲取當(dāng)前小時(shí)數(shù) if am in an: ax = an[am] ay = (int(ax) + ac) % 6 #用當(dāng)前小時(shí)數(shù)對應(yīng)的參數(shù)加上對應(yīng)的卦數(shù)除以6取余,就是獲得的變爻數(shù)。 fv = fu[:] ba = fv[ay-1] if ba == 0: fv[ay-1] = 1 else: fv[ay-1] = 0#復(fù)制fu列表,并把對應(yīng)的變爻卦符改變。 for na in range(0,6): fi = open('qg/fi.txt','a') fi.write(str(fv[5-na])) fi.close()#把fv列表內(nèi)容反向?qū)懭?nbsp;fi.txt文件中。 for aj in open('qg/fi.txt','r'): f3 = open('qg/f3.txt','a') f3.write(str(fa[aj[0:3]])) f2.close() f3 = open('qg/f3.txt','a') f3.write(str(fa[aj[3:6]])) f3.close() for aq in open('qg/f3.txt','r'): j = aq ff = {'74': '27', '34': '21', '88': '2', '86': '7', '33': '30', '84': '24', '85': '46', '82': '19', '83': '36', '54': '42', '21': '43', '22': '58', '23': '49', '24': '17', '25': '28', '26': '47', '27': '31', '28': '45', '68': '8', '73': '22', '58': '20', '71': '26', '77': '52', '76': '4', '75': '18', '38': '35', '37': '56', '36': '64', '35': '58', '52': '61', '55': '57', '32': '38', '57': '53', '56': '59', '87': '15', '72': '41', '66': '29', '15': '44', '14': '25', '17': '33', '16': '6', '11': '1', '13': '13', '12': '10', '81': '11', '18': '12', '64': '3', '65': '48', '48': '16', '67': '39', '61': '5', '62': '60', '63': '63', '42': '54', '43': '55', '41': '34', '46': '40', '47': '62', '44': '51', '45': '32', '51': '9', '78': '23', '31': '14', '53': '37'}# ssg = [55,53,49,48,46,44,43,42,27,21,14,8,2,1]# gua = ff[j] f4 = open('qg/f4.txt','w') f4.write(str(ff[j])) f4.close#上面這個(gè)字典是把上下卦的組合號轉(zhuǎn)換成卦號,這個(gè)也可以不改,這里不改京要改經(jīng)文的文件名。 import os os.remove('qg/f2.txt') os.remove('qg/fi.txt') os.remove('qg/f3.txt') os.remove('qg/fl.txt') del fu[:]#清除上面生成的文件和列表ssg = [55,53,49,48,46,44,43,42,27,21,14,8,2,1]running = Truewhile running: import random qou = range(1,34) hongse = random.sample(qou,6) qg() for f5 in open('qg/f4.txt','r'): f6 = f5 if int(f6[:]) in ssg: print ('紅球是:') print (hongse) running = Falseluq = Truewhile luq: import random lqou = range(1,17) luse = random.sample(lqou,1) qg() for f7 in open('qg/f4.txt','r'): f8 = f7 if int(f8[:]) in ssg: print ('藍(lán)球是:') print (luse) luq = False #如果生成隨機(jī)數(shù)后運(yùn)行易經(jīng) 本文出自 “星河碼頭” 博客,請務(wù)必保留此出處http://liy607.blog.51cto.com/2892862/1434005 |
|