2016-04-05 26 views
1

我想寫一個Python程序,它需要一個希伯來文本,將每個字母轉換成它的ghematria數字,總和每個字中的數字,然後打印詞作爲數字。Python中的Ghematria:希伯來字母數字和總和

,開始我想設置ALEPH貝絲變量, 像:

א=1 
ב=2 
ג=3 
ד=4 

等等...

請記住,因爲希伯來字母strong right-to-left characters,一切都開始顯示從一開始從右到左。那些作業只是看起來落後;他們really are valid在Python 3中。

現在我已經設置了變量,我想知道如何從一個txt文件(當然,unicode 8)獲得所有單詞的數字.. noob的任何幫助?

+1

「請記住,因爲我們使用希伯來語變量的值設置爲等號(=)左邊的」 < - 我不知道我跟着你在做什麼在那裏。請記住我們正在使用Python? – timgeb

+0

如果你想設置一個變量使用像aleph = 1的希伯來字母它顯示爲 as 1 =א... – Giorgio

+0

我明白這一點,但是這與您想要實現的替換和求和有什麼關係? – timgeb

回答

2

請記住,因爲我們使用希伯來語變量的值設置爲等號(=)的左邊...而不是在正確的...

Python不會關心。 1 = א將無法​​正常工作,因爲您正嘗試將值分配給int

另一種方式也不會很樂意合作。 Unicode標識符僅由Python 3支持,但我不會走上這條路。

我會做的是有字母作爲鍵和數字作爲值的字典。

然後只需閱讀文本文件,將每個字母轉換爲其數量和總和。

編輯這種東西。 請注意,由於我很懶,因此我在字典中只有3個字母,而我使用字典的get()方法 ,因此我不會在空格,換行符和標點符號上獲得KeyError

vals = {'א': 1, 
     'ב': 2, 
     'ג': 3} 

with open(path_to_file, encoding='utf-8') as f: 
    text = f.read() 
    sum = 0 
    for letter in text: 
     sum += vals.get(letter, 0) 

print(sum) 
+0

很有意思。我會嘗試這個並報告。 非常感謝 – Giorgio

+0

您的字典是否被破解? '{'1:'א,'是它讀到我的方式。還是那只是unicode barfing? –

+1

@WayneWerner:希伯來字母的右對齊類型由以下文本繼承。 [詳細信息很複雜。](http://unicode.org/reports/tr9/) – user2357112