tala = int(input('Skrifaðu magn af pening-->'))
if tala >= 0:
fth = int(tala/5000)
remains = tala % 5000
tth = int(remains/2000)
remains = remains % 2000
th = int(remains/1000)
remains = remains % 1000
fhr = int(remains/500)
remains = remains % 500
hdr = int(remains/100)
remains = remains % 100
fty = int(remains/50)
remains = remains % 50
ten = int(remains/10)
remains = remains % 10
fiv = int(remains/5)
remains = remains % 5
one = int(remains/1)
print(d[tala])
打印的部分是問題 我不熟悉的語法的主要焦點,但這一計劃是使用字典,以避免噸,如果是要告訴的代碼做什麼,如果數量超過5000,或者如果它大於2000大等 基本上我腦子裏想的是這樣的(無效的語法OFC)試圖縮短我的代碼字典
d = {}
##d[Value between 0 and 4] or d[value between 5 and 9] etc.
d[0-4] = ("That would be {0} Krónur.".format(one))
d[5-9] = ("That would be {1} Fimmkallar and {0} Krónur.".format(one,fiv))
d[10-49] = ("That would be {2} Tíkallar, {1} Fimmkallar and {0} Krónur.".format(one,fiv,ten))
d[50-99] = ("That would be {3} Fimmtíukallar, {2} Tíkallar, {1} Fimmkallar and {0} Krónur.".format(one,fiv,ten,fty))
如果你想知道這是什麼碼正在做,是如果我說輸入更高的價值t韓5000
它會分裂下來(sortof像ATM)給它多少次是5000法案,2000法案,1000法案,500法案,100枚硬幣等
它是一所學校的項目解決各地%符號的使用(這是針對C#做然而,但我通過做在Python我的C#分配學習Python)的
的主要問題是:如果那裏有一種方法,使該字典的工作作風我愛知道如何。 第二個問題是: 如果這是一個更好的方法來做到這一點,我很樂意聽到你的想法。 如果我應該這樣做(或其中的一部分)一些其他方式,不會傷害知道。
編輯:我發現了一個半功能的解決方案,但它不完全漂亮。然而,這是一個很多比我更另類可讀性,所以它比沒有好,沒有任何人有一個更好的主意比這?:
#Dictionary START
if tala < 5:
num = 0
elif tala < 10:
num = 1
elif tala < 50:
num = 2
elif tala < 100:
num = 3
d = {}
d[0] =("Það eru {0} Krónur.".format(one))
d[1] =("Það eru {1} Fimmkallar og {0} Krónur.".format(one,fiv))
...
#Dictionary END
print(d[num])
我發現了一個半功能soluton,這是使如果森泰斯和一個新的變量 (例如) 如果塔拉<5: NUM = 0 elif的塔拉<10: NUM = 1 然後使 d [NUM]代替d [塔拉] 不是令人滿意的解決方案,但我認爲它看起來比如果不使用字典作爲最終結果我被方式漂亮(我也刪除了逗號和替換的字符串格式) – Rabcor 2013-03-21 14:36:38