fork download
  1. import random
  2.  
  3. # 値段をランダムで設定
  4. nedan = random.randint(1, 100000)
  5. print('値段', nedan)
  6.  
  7. # いくらを支払うか入力させる
  8. # 金額を入力 正の整数以外は再入力
  9. while True:
  10. shiharai = input('支払額を入力:')
  11. if shiharai.isdecimal():
  12. shiharai = int(shiharai)
  13. break
  14. else:
  15. print('正の整数を入力してください')
  16.  
  17. # 見た目調整用の改行
  18. print()
  19.  
  20. # お釣りの金額を計算
  21. otsuri = shiharai - nedan
  22.  
  23. # お金が足りない場合
  24. if otsuri < 0:
  25. print('お金が足りません。')
  26.  
  27. else:
  28.  
  29. # お金の種類を設定
  30. money_list = {
  31. 10000: '一万円札',
  32. 5000 : '五千円札',
  33. 2000 : '二千円札',
  34. 1000 : ' 千円札',
  35. 500 : '五百円玉',
  36. 100 : ' 百円玉',
  37. 50 : '五十円玉',
  38. 10 : ' 十円玉',
  39. 5 : ' 五円玉',
  40. 1 : ' 一円玉',
  41. }
  42.  
  43.  
  44. # お釣りの返し方を計算
  45. print('お釣りは')
  46. for money in sorted(money_list.keys(), reverse=True):
  47.  
  48. # お金の枚数を計算
  49. maisu = otsuri // money
  50.  
  51. # 1枚以上なら
  52. if maisu >= 1:
  53.  
  54. # 結果を出力
  55. print(money_list[money] + ':' + str(maisu) + '枚')
  56.  
  57. # 残金を計算
  58. otsuri = otsuri % money
  59.  
Success #stdin #stdout 0.05s 10100KB
stdin
80000
stdout
値段 30963
支払額を入力:
お釣りは
一万円札:4枚
五千円札:1枚
二千円札:2枚
 十円玉:3枚
 五円玉:1枚
 一円玉:2枚