Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

answer these methods in python please.? 1.) A function change() that accepts a number of U.S. cents and returns a tuple containing, respectively, the smallest

answer these methods in python please.?

1.) A function change() that accepts a number of U.S. cents and returns a tuple containing, respectively, the smallest number of U.S. quarters, dimes, nickels, and pennies that equal the given amount.

2.) A function strip_quotes() that accepts a string and returns a new string equivalent to the argument but with all single quotes and double quotes removed. 

3.) A function scramble() that randomly permutes a string. What does random mean? It means that each time you call the function for a given argument, all possible permutations are equally likely. Random is not the same as arbitrary.

4.) A generator function powers() that yields successive powers of a base starting at 1 and going up to some limit.

5.) A function triples() returning a list of all (positive) integer Pythagorean triples for all hypotenuse values up to, and including, some value.

6.) A chainable function say() that accepts one string per call, but when called without arguments, returns the words previously passed, in order, separated by a single space.

** Please implement the above six functions in Python and name the source file as h1.py.

A test file h1_test.py is provided below!

h1_test.py

import re import math import pytest from h1 import (change, strip_quotes, scramble, say, triples, powers) def test_change(): assert change(0) == (0, 0, 0, 0) assert change(97) == (3, 2, 0, 2) assert change(8) == (0, 0, 1, 3) assert change(250) == (10, 0, 0, 0) assert change(144) == (5, 1, 1, 4) assert change(97) == (3, 2, 0, 2) assert change(100000000000) == (4000000000, 0, 0, 0) with pytest.raises(ValueError) as excinfo: change(-50) assert str(excinfo.value) == 'amount cannot be negative' def test_strip_quotes(): assert strip_quotes('') == '' assert strip_quotes('Hello, world') == 'Hello, world' assert strip_quotes('"\'') == '' assert strip_quotes('a"""\'\'"z') == 'az' def test_scramble(): for s in ['a', 'rat', 'JavaScript testing', '', 'zzz', '^*))^*>^']: assert sorted(s) == sorted(scramble(s)) possibilities = set(['ABC', 'ACB', 'BAC', 'BCA', 'CAB', 'CBA']) for _ in range(200): possibilities.discard(scramble('ABC')) assert not possibilities def test_say(): assert say() == '' assert say('hi')() == 'hi' assert say('hi')('there')() == 'hi there' assert say('hello')('my')('name')('is')('Colette')() == 'hello my name is Colette' def test_triples(): assert triples(0) == [] assert triples(5) == [(3, 4, 5)] assert set(triples(40)) == set([(3, 4, 5), (5, 12, 13), (6, 8, 10), (7, 24, 25), (8, 15, 17), (9, 12, 15), (10, 24, 26), (12, 16, 20), (12, 35, 37), (15, 20, 25), (15, 36, 39), (16, 30, 34), (18, 24, 30), (20, 21, 29), (21, 28, 35), (24, 32, 40)]) def test_powers(): p = powers(2, 10) assert next(p) == 1 assert next(p) == 2 assert next(p) == 4 assert next(p) == 8 with pytest.raises(StopIteration): next(p) assert list(powers(2, -5)) == [] assert list(powers(7, 0)) == [] assert list(powers(3, 1)) == [1] assert list(powers(2, 63)) == [1, 2, 4, 8, 16, 32] assert list(powers(2, 64)) == [1, 2, 4, 8, 16, 32, 64]

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions

Question

What is the principle of thermodynamics? Explain with examples

Answered: 1 week ago

Question

Discuss consumer-driven health plans.

Answered: 1 week ago