Script that counts quarters, dimes, nickels, and penniesGroup By And Two CountsCross-platform performance and statistical information scriptGrouping logs and providing countsCounting single degree vertex removal rounds (from a graph)Let's protect that CLI Python scriptIterative “counting change” implementation in mit-schemeCalculating frequencies of each obs in the dataInfinite monkey theorem demonstration in PythonReturn the amount of Quarters, Dimes, Nickels, and Pennies that you would get from the total amount of changeSimple game of hangman which counts wins and losses

Terse Method to Swap Lowest for Highest?

What does routing an IP address mean?

What does chmod -u do?

Did arcade monitors have same pixel aspect ratio as TV sets?

Is the U.S. Code copyrighted by the Government?

Is it better practice to read straight from sheet music rather than memorize it?

Travelling outside the UK without a passport

Can Legal Documents Be Siged In Non-Standard Pen Colors?

Are the IPv6 address space and IPv4 address space completely disjoint?

Closed-form expression for certain product

Why Shazam when there is already Superman?

What should you do when eye contact makes your subordinate uncomfortable?

Melting point of aspirin, contradicting sources

Reverse int within the 32-bit signed integer range: [−2^31, 2^31 − 1]

What does "Scientists rise up against statistical significance" mean? (Comment in Nature)

What is this called? Old film camera viewer?

New brakes for 90s road bike

Is it possible to have a strip of cold climate in the middle of a planet?

Why electric field inside a cavity of a non-conducting sphere not zero?

Open a doc from terminal, but not by its name

Has any country ever had 2 former presidents in jail simultaneously?

Did Swami Prabhupada reject Advaita?

On a tidally locked planet, would time be quantized?

How to indicate a cut out for a product window



Script that counts quarters, dimes, nickels, and pennies


Group By And Two CountsCross-platform performance and statistical information scriptGrouping logs and providing countsCounting single degree vertex removal rounds (from a graph)Let's protect that CLI Python scriptIterative “counting change” implementation in mit-schemeCalculating frequencies of each obs in the dataInfinite monkey theorem demonstration in PythonReturn the amount of Quarters, Dimes, Nickels, and Pennies that you would get from the total amount of changeSimple game of hangman which counts wins and losses













5












$begingroup$


I am learning Python and I wrote a script that counts how many coins you would need for an amount in dollars. I was wondering if I could make any improvements to it.



def change():
amnt = float(input("Enter an amount in USD: "))
quarters = divmod(amnt, 0.25)
print("Quarters: ", quarters[0])
amnt = round(quarters[1], 2)
dimes = divmod(amnt, 0.10)
print("Dimes: ", dimes[0])
amnt = round(dimes[1], 2)
nickels = divmod(amnt, 0.
print("Nickels: ", nickels[0])
amnt = round(nickels[1], 2)
penny = divmod(amnt, 0.01)
print("Pennies", penny[0])
change()









share|improve this question











$endgroup$
















    5












    $begingroup$


    I am learning Python and I wrote a script that counts how many coins you would need for an amount in dollars. I was wondering if I could make any improvements to it.



    def change():
    amnt = float(input("Enter an amount in USD: "))
    quarters = divmod(amnt, 0.25)
    print("Quarters: ", quarters[0])
    amnt = round(quarters[1], 2)
    dimes = divmod(amnt, 0.10)
    print("Dimes: ", dimes[0])
    amnt = round(dimes[1], 2)
    nickels = divmod(amnt, 0.
    print("Nickels: ", nickels[0])
    amnt = round(nickels[1], 2)
    penny = divmod(amnt, 0.01)
    print("Pennies", penny[0])
    change()









    share|improve this question











    $endgroup$














      5












      5








      5


      1



      $begingroup$


      I am learning Python and I wrote a script that counts how many coins you would need for an amount in dollars. I was wondering if I could make any improvements to it.



      def change():
      amnt = float(input("Enter an amount in USD: "))
      quarters = divmod(amnt, 0.25)
      print("Quarters: ", quarters[0])
      amnt = round(quarters[1], 2)
      dimes = divmod(amnt, 0.10)
      print("Dimes: ", dimes[0])
      amnt = round(dimes[1], 2)
      nickels = divmod(amnt, 0.
      print("Nickels: ", nickels[0])
      amnt = round(nickels[1], 2)
      penny = divmod(amnt, 0.01)
      print("Pennies", penny[0])
      change()









      share|improve this question











      $endgroup$




      I am learning Python and I wrote a script that counts how many coins you would need for an amount in dollars. I was wondering if I could make any improvements to it.



      def change():
      amnt = float(input("Enter an amount in USD: "))
      quarters = divmod(amnt, 0.25)
      print("Quarters: ", quarters[0])
      amnt = round(quarters[1], 2)
      dimes = divmod(amnt, 0.10)
      print("Dimes: ", dimes[0])
      amnt = round(dimes[1], 2)
      nickels = divmod(amnt, 0.
      print("Nickels: ", nickels[0])
      amnt = round(nickels[1], 2)
      penny = divmod(amnt, 0.01)
      print("Pennies", penny[0])
      change()






      python beginner python-3.x change-making-problem






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 7 at 6:47









      200_success

      130k17155419




      130k17155419










      asked Mar 7 at 3:56









      Hasan QaziHasan Qazi

      282




      282




















          1 Answer
          1






          active

          oldest

          votes


















          9












          $begingroup$

          Separate input from processing. If you want to test your method with a number of different values, you'll have to call change() multiple times, and enter in the value each time. Instead, change the function to accept the amnt, and you can call it many times passing in the amount of cash as an argument:



          def change(amnt):
          # ...


          Working with tuples from divmod is awkward. Python has deconstructing assignment, which will take a returned tuple an assign the members to separate variables:



          def change(amnt):
          quarters, amnt = divmod(amnt, 0.25)
          print("Quarters: ", quarters)

          dimes, amnt = divmod(round(amnt, 2), 0.10)
          print("Dimes: ", dimes)


          For the last operation, you don't use the remainder, so the "throw-away" variable _ can be used for it:



           pennies, _ = divmod(round(amnt, 2), 0.01)
          print("Pennies: ", pennies)


          If you import this script into another program, you probably don't want the script to immediately run; rather you just want the change(amnt) function to be defined so this other program can call it. This is done by adding a "guard" at the end of the script, which only runs the code if the script is invoked directly:



          if __name__ == '__main__':
          amnt = float(input("Enter an amount in USD: "))
          change(amnt)



          In addition to separating input from processing, you might want to separate the processing from the output:



          def change(amnt):
          quarters, amnt = divmod(amnt, 0.25)
          dimes, amnt = divmod(amnt, 0.10)
          nickels, amnt = divmod(amnt, 0.05)
          pennies = round(amnt / 0.01, 0)

          return list(map(int, [quarters, dimes, nickels, pennies]))

          if __name__ == '__main__':
          amnt = float(input("Enter an amount in USD: "))
          quarters, dimes, nickels, pennies = change(amnt)
          print(" quarters, dimes, nickels, pennies".format(
          quarters, dimes, nickels, pennies))



          Despite attempts to fix rounding errors with things like round(amnt,2), calling change(0.85) returns [3, 0, 1, 5], showing that there wasn't quite enough change to make 2 nickels, but after removing 1 nickel, approximately 5 pennies remained. This is caused by floating point math.



          We can avoid these issues by switching to integer math, based on the number of pennies:



          def change(amnt):
          pennies = round(amnt * 100) # Convert from dollars to pennies

          quarters, pennies = divmod(pennies, 25)
          dimes, pennies = divmod(pennies, 10)
          nickels, pennies = divmod(pennies, 5)

          return quarters, dimes, nickels, pennies

          if __name__ == '__main__':
          amnt = float(input("Enter an amount in USD: "))
          quarters, dimes, nickels, pennies = change(amnt)
          print(" quarters, dimes, nickels, pennies".format(
          quarters, dimes, nickels, pennies))


          As mentioned in the comments by @Ilmari, round(...) with only a single argument will round the value to the nearest whole number and return an integer value. When integer values are used with divmod, results are also integers, so switching from dollars-and-cents to integer pennies eliminates the ugly rounding issues.






          share|improve this answer











          $endgroup$












          • $begingroup$
            +1 for everything except your non-PEP8 formatting, even though it does look nice here.
            $endgroup$
            – Graipher
            Mar 7 at 6:17






          • 1




            $begingroup$
            It might be worth noting that the behavior of single-argument round() autoconverting floats to ints is specific to Python 3. In Python 2, you'd need to explicitly write pennies = int(round(amnt * 100)) if you want the results to be ints. (Of course, using an explicit int() here is OK in Python 3 too, just redundant.)
            $endgroup$
            – Ilmari Karonen
            Mar 7 at 9:33











          Your Answer





          StackExchange.ifUsing("editor", function ()
          return StackExchange.using("mathjaxEditing", function ()
          StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
          StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
          );
          );
          , "mathjax-editing");

          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "196"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f214888%2fscript-that-counts-quarters-dimes-nickels-and-pennies%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          9












          $begingroup$

          Separate input from processing. If you want to test your method with a number of different values, you'll have to call change() multiple times, and enter in the value each time. Instead, change the function to accept the amnt, and you can call it many times passing in the amount of cash as an argument:



          def change(amnt):
          # ...


          Working with tuples from divmod is awkward. Python has deconstructing assignment, which will take a returned tuple an assign the members to separate variables:



          def change(amnt):
          quarters, amnt = divmod(amnt, 0.25)
          print("Quarters: ", quarters)

          dimes, amnt = divmod(round(amnt, 2), 0.10)
          print("Dimes: ", dimes)


          For the last operation, you don't use the remainder, so the "throw-away" variable _ can be used for it:



           pennies, _ = divmod(round(amnt, 2), 0.01)
          print("Pennies: ", pennies)


          If you import this script into another program, you probably don't want the script to immediately run; rather you just want the change(amnt) function to be defined so this other program can call it. This is done by adding a "guard" at the end of the script, which only runs the code if the script is invoked directly:



          if __name__ == '__main__':
          amnt = float(input("Enter an amount in USD: "))
          change(amnt)



          In addition to separating input from processing, you might want to separate the processing from the output:



          def change(amnt):
          quarters, amnt = divmod(amnt, 0.25)
          dimes, amnt = divmod(amnt, 0.10)
          nickels, amnt = divmod(amnt, 0.05)
          pennies = round(amnt / 0.01, 0)

          return list(map(int, [quarters, dimes, nickels, pennies]))

          if __name__ == '__main__':
          amnt = float(input("Enter an amount in USD: "))
          quarters, dimes, nickels, pennies = change(amnt)
          print(" quarters, dimes, nickels, pennies".format(
          quarters, dimes, nickels, pennies))



          Despite attempts to fix rounding errors with things like round(amnt,2), calling change(0.85) returns [3, 0, 1, 5], showing that there wasn't quite enough change to make 2 nickels, but after removing 1 nickel, approximately 5 pennies remained. This is caused by floating point math.



          We can avoid these issues by switching to integer math, based on the number of pennies:



          def change(amnt):
          pennies = round(amnt * 100) # Convert from dollars to pennies

          quarters, pennies = divmod(pennies, 25)
          dimes, pennies = divmod(pennies, 10)
          nickels, pennies = divmod(pennies, 5)

          return quarters, dimes, nickels, pennies

          if __name__ == '__main__':
          amnt = float(input("Enter an amount in USD: "))
          quarters, dimes, nickels, pennies = change(amnt)
          print(" quarters, dimes, nickels, pennies".format(
          quarters, dimes, nickels, pennies))


          As mentioned in the comments by @Ilmari, round(...) with only a single argument will round the value to the nearest whole number and return an integer value. When integer values are used with divmod, results are also integers, so switching from dollars-and-cents to integer pennies eliminates the ugly rounding issues.






          share|improve this answer











          $endgroup$












          • $begingroup$
            +1 for everything except your non-PEP8 formatting, even though it does look nice here.
            $endgroup$
            – Graipher
            Mar 7 at 6:17






          • 1




            $begingroup$
            It might be worth noting that the behavior of single-argument round() autoconverting floats to ints is specific to Python 3. In Python 2, you'd need to explicitly write pennies = int(round(amnt * 100)) if you want the results to be ints. (Of course, using an explicit int() here is OK in Python 3 too, just redundant.)
            $endgroup$
            – Ilmari Karonen
            Mar 7 at 9:33
















          9












          $begingroup$

          Separate input from processing. If you want to test your method with a number of different values, you'll have to call change() multiple times, and enter in the value each time. Instead, change the function to accept the amnt, and you can call it many times passing in the amount of cash as an argument:



          def change(amnt):
          # ...


          Working with tuples from divmod is awkward. Python has deconstructing assignment, which will take a returned tuple an assign the members to separate variables:



          def change(amnt):
          quarters, amnt = divmod(amnt, 0.25)
          print("Quarters: ", quarters)

          dimes, amnt = divmod(round(amnt, 2), 0.10)
          print("Dimes: ", dimes)


          For the last operation, you don't use the remainder, so the "throw-away" variable _ can be used for it:



           pennies, _ = divmod(round(amnt, 2), 0.01)
          print("Pennies: ", pennies)


          If you import this script into another program, you probably don't want the script to immediately run; rather you just want the change(amnt) function to be defined so this other program can call it. This is done by adding a "guard" at the end of the script, which only runs the code if the script is invoked directly:



          if __name__ == '__main__':
          amnt = float(input("Enter an amount in USD: "))
          change(amnt)



          In addition to separating input from processing, you might want to separate the processing from the output:



          def change(amnt):
          quarters, amnt = divmod(amnt, 0.25)
          dimes, amnt = divmod(amnt, 0.10)
          nickels, amnt = divmod(amnt, 0.05)
          pennies = round(amnt / 0.01, 0)

          return list(map(int, [quarters, dimes, nickels, pennies]))

          if __name__ == '__main__':
          amnt = float(input("Enter an amount in USD: "))
          quarters, dimes, nickels, pennies = change(amnt)
          print(" quarters, dimes, nickels, pennies".format(
          quarters, dimes, nickels, pennies))



          Despite attempts to fix rounding errors with things like round(amnt,2), calling change(0.85) returns [3, 0, 1, 5], showing that there wasn't quite enough change to make 2 nickels, but after removing 1 nickel, approximately 5 pennies remained. This is caused by floating point math.



          We can avoid these issues by switching to integer math, based on the number of pennies:



          def change(amnt):
          pennies = round(amnt * 100) # Convert from dollars to pennies

          quarters, pennies = divmod(pennies, 25)
          dimes, pennies = divmod(pennies, 10)
          nickels, pennies = divmod(pennies, 5)

          return quarters, dimes, nickels, pennies

          if __name__ == '__main__':
          amnt = float(input("Enter an amount in USD: "))
          quarters, dimes, nickels, pennies = change(amnt)
          print(" quarters, dimes, nickels, pennies".format(
          quarters, dimes, nickels, pennies))


          As mentioned in the comments by @Ilmari, round(...) with only a single argument will round the value to the nearest whole number and return an integer value. When integer values are used with divmod, results are also integers, so switching from dollars-and-cents to integer pennies eliminates the ugly rounding issues.






          share|improve this answer











          $endgroup$












          • $begingroup$
            +1 for everything except your non-PEP8 formatting, even though it does look nice here.
            $endgroup$
            – Graipher
            Mar 7 at 6:17






          • 1




            $begingroup$
            It might be worth noting that the behavior of single-argument round() autoconverting floats to ints is specific to Python 3. In Python 2, you'd need to explicitly write pennies = int(round(amnt * 100)) if you want the results to be ints. (Of course, using an explicit int() here is OK in Python 3 too, just redundant.)
            $endgroup$
            – Ilmari Karonen
            Mar 7 at 9:33














          9












          9








          9





          $begingroup$

          Separate input from processing. If you want to test your method with a number of different values, you'll have to call change() multiple times, and enter in the value each time. Instead, change the function to accept the amnt, and you can call it many times passing in the amount of cash as an argument:



          def change(amnt):
          # ...


          Working with tuples from divmod is awkward. Python has deconstructing assignment, which will take a returned tuple an assign the members to separate variables:



          def change(amnt):
          quarters, amnt = divmod(amnt, 0.25)
          print("Quarters: ", quarters)

          dimes, amnt = divmod(round(amnt, 2), 0.10)
          print("Dimes: ", dimes)


          For the last operation, you don't use the remainder, so the "throw-away" variable _ can be used for it:



           pennies, _ = divmod(round(amnt, 2), 0.01)
          print("Pennies: ", pennies)


          If you import this script into another program, you probably don't want the script to immediately run; rather you just want the change(amnt) function to be defined so this other program can call it. This is done by adding a "guard" at the end of the script, which only runs the code if the script is invoked directly:



          if __name__ == '__main__':
          amnt = float(input("Enter an amount in USD: "))
          change(amnt)



          In addition to separating input from processing, you might want to separate the processing from the output:



          def change(amnt):
          quarters, amnt = divmod(amnt, 0.25)
          dimes, amnt = divmod(amnt, 0.10)
          nickels, amnt = divmod(amnt, 0.05)
          pennies = round(amnt / 0.01, 0)

          return list(map(int, [quarters, dimes, nickels, pennies]))

          if __name__ == '__main__':
          amnt = float(input("Enter an amount in USD: "))
          quarters, dimes, nickels, pennies = change(amnt)
          print(" quarters, dimes, nickels, pennies".format(
          quarters, dimes, nickels, pennies))



          Despite attempts to fix rounding errors with things like round(amnt,2), calling change(0.85) returns [3, 0, 1, 5], showing that there wasn't quite enough change to make 2 nickels, but after removing 1 nickel, approximately 5 pennies remained. This is caused by floating point math.



          We can avoid these issues by switching to integer math, based on the number of pennies:



          def change(amnt):
          pennies = round(amnt * 100) # Convert from dollars to pennies

          quarters, pennies = divmod(pennies, 25)
          dimes, pennies = divmod(pennies, 10)
          nickels, pennies = divmod(pennies, 5)

          return quarters, dimes, nickels, pennies

          if __name__ == '__main__':
          amnt = float(input("Enter an amount in USD: "))
          quarters, dimes, nickels, pennies = change(amnt)
          print(" quarters, dimes, nickels, pennies".format(
          quarters, dimes, nickels, pennies))


          As mentioned in the comments by @Ilmari, round(...) with only a single argument will round the value to the nearest whole number and return an integer value. When integer values are used with divmod, results are also integers, so switching from dollars-and-cents to integer pennies eliminates the ugly rounding issues.






          share|improve this answer











          $endgroup$



          Separate input from processing. If you want to test your method with a number of different values, you'll have to call change() multiple times, and enter in the value each time. Instead, change the function to accept the amnt, and you can call it many times passing in the amount of cash as an argument:



          def change(amnt):
          # ...


          Working with tuples from divmod is awkward. Python has deconstructing assignment, which will take a returned tuple an assign the members to separate variables:



          def change(amnt):
          quarters, amnt = divmod(amnt, 0.25)
          print("Quarters: ", quarters)

          dimes, amnt = divmod(round(amnt, 2), 0.10)
          print("Dimes: ", dimes)


          For the last operation, you don't use the remainder, so the "throw-away" variable _ can be used for it:



           pennies, _ = divmod(round(amnt, 2), 0.01)
          print("Pennies: ", pennies)


          If you import this script into another program, you probably don't want the script to immediately run; rather you just want the change(amnt) function to be defined so this other program can call it. This is done by adding a "guard" at the end of the script, which only runs the code if the script is invoked directly:



          if __name__ == '__main__':
          amnt = float(input("Enter an amount in USD: "))
          change(amnt)



          In addition to separating input from processing, you might want to separate the processing from the output:



          def change(amnt):
          quarters, amnt = divmod(amnt, 0.25)
          dimes, amnt = divmod(amnt, 0.10)
          nickels, amnt = divmod(amnt, 0.05)
          pennies = round(amnt / 0.01, 0)

          return list(map(int, [quarters, dimes, nickels, pennies]))

          if __name__ == '__main__':
          amnt = float(input("Enter an amount in USD: "))
          quarters, dimes, nickels, pennies = change(amnt)
          print(" quarters, dimes, nickels, pennies".format(
          quarters, dimes, nickels, pennies))



          Despite attempts to fix rounding errors with things like round(amnt,2), calling change(0.85) returns [3, 0, 1, 5], showing that there wasn't quite enough change to make 2 nickels, but after removing 1 nickel, approximately 5 pennies remained. This is caused by floating point math.



          We can avoid these issues by switching to integer math, based on the number of pennies:



          def change(amnt):
          pennies = round(amnt * 100) # Convert from dollars to pennies

          quarters, pennies = divmod(pennies, 25)
          dimes, pennies = divmod(pennies, 10)
          nickels, pennies = divmod(pennies, 5)

          return quarters, dimes, nickels, pennies

          if __name__ == '__main__':
          amnt = float(input("Enter an amount in USD: "))
          quarters, dimes, nickels, pennies = change(amnt)
          print(" quarters, dimes, nickels, pennies".format(
          quarters, dimes, nickels, pennies))


          As mentioned in the comments by @Ilmari, round(...) with only a single argument will round the value to the nearest whole number and return an integer value. When integer values are used with divmod, results are also integers, so switching from dollars-and-cents to integer pennies eliminates the ugly rounding issues.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Mar 8 at 2:57

























          answered Mar 7 at 4:25









          AJNeufeldAJNeufeld

          6,4001621




          6,4001621











          • $begingroup$
            +1 for everything except your non-PEP8 formatting, even though it does look nice here.
            $endgroup$
            – Graipher
            Mar 7 at 6:17






          • 1




            $begingroup$
            It might be worth noting that the behavior of single-argument round() autoconverting floats to ints is specific to Python 3. In Python 2, you'd need to explicitly write pennies = int(round(amnt * 100)) if you want the results to be ints. (Of course, using an explicit int() here is OK in Python 3 too, just redundant.)
            $endgroup$
            – Ilmari Karonen
            Mar 7 at 9:33

















          • $begingroup$
            +1 for everything except your non-PEP8 formatting, even though it does look nice here.
            $endgroup$
            – Graipher
            Mar 7 at 6:17






          • 1




            $begingroup$
            It might be worth noting that the behavior of single-argument round() autoconverting floats to ints is specific to Python 3. In Python 2, you'd need to explicitly write pennies = int(round(amnt * 100)) if you want the results to be ints. (Of course, using an explicit int() here is OK in Python 3 too, just redundant.)
            $endgroup$
            – Ilmari Karonen
            Mar 7 at 9:33
















          $begingroup$
          +1 for everything except your non-PEP8 formatting, even though it does look nice here.
          $endgroup$
          – Graipher
          Mar 7 at 6:17




          $begingroup$
          +1 for everything except your non-PEP8 formatting, even though it does look nice here.
          $endgroup$
          – Graipher
          Mar 7 at 6:17




          1




          1




          $begingroup$
          It might be worth noting that the behavior of single-argument round() autoconverting floats to ints is specific to Python 3. In Python 2, you'd need to explicitly write pennies = int(round(amnt * 100)) if you want the results to be ints. (Of course, using an explicit int() here is OK in Python 3 too, just redundant.)
          $endgroup$
          – Ilmari Karonen
          Mar 7 at 9:33





          $begingroup$
          It might be worth noting that the behavior of single-argument round() autoconverting floats to ints is specific to Python 3. In Python 2, you'd need to explicitly write pennies = int(round(amnt * 100)) if you want the results to be ints. (Of course, using an explicit int() here is OK in Python 3 too, just redundant.)
          $endgroup$
          – Ilmari Karonen
          Mar 7 at 9:33


















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Code Review Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          Use MathJax to format equations. MathJax reference.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f214888%2fscript-that-counts-quarters-dimes-nickels-and-pennies%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          AWS Lex not identifying response if by a variable The 2019 Stack Overflow Developer Survey Results Are In Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) The Ask Question Wizard is Live! Data science time! April 2019 and salary with experienceEnforcing custom enumeration in AWS LEX for slot valuesHow to give response based on user response in Amazon Lex?Intercepting AWS Lambda Response to a AWS Lex QueryLex chat bot error: Reached second execution of fulfillment lambda on the same utteranceamazon lex showing invalid responseLambda response send back to Lex slot?Response card in Amazon lexAmazon Lex - Lambda response return HTML to botHow can I solve 424 (Failed Dependency) (python) obtained from Amazon lex?

          Алба-Юлія

          Захаров Федір Захарович