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 より大きい場合、または 5000 より大きい場合に何をすべきかをコードに伝えるために、大量の if を作成することを避けるために dict を使用することでした。 2000 など。基本的には、このようなことを念頭に置いていました (無効な構文の c)
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))
このコードが何をしているのか知りたい場合は、5000 より大きい値を入力してください。
5000 紙幣、2000 紙幣、1000 紙幣、500 紙幣、100 コインなどに分割します (ATM のようなものです)。
これは、% 記号の使用法を解決する学校のプロジェクトでした (ただし、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])