Shampoo cycle loop

Question:

I am having trouble figuring out how to stop the loop in my code:

def shampoo_instructions(num_cycles):
    for num_cycles in range(1,num_cycles+1):
        if num_cycles < 1:
            print 'Too few.'
        elif num_cycles > 4:
            print 'Too many.' 
        else:
            print num_cycles, ': Lather and rinse.'
    else:     
        print 'Done.'

shampoo_instructions(2)

My output would be:

1 : Lather and rinse.

2 : Lather and rinse.

Done.

How can i make it so when shampoo_instructions(6)

it just prints “Too many.”

?

Asked By: NinjaKlown

||

Answers:

Move your range check to be outside your actual looping, eg:

def shampoo_instructions(num_cycles):
    if num_cycles < 1:
        print 'Too few.'
    elif num_cyles > 4:
        print 'Too many.'
    else:
        for num_cycles in range(1,num_cycles+1):
            print num_cycles, 'lather and rinse.'
        print 'Done'
Answered By: Jon Clements

found some help from reddit.

def shampoo_instructions(num_cycles):
    if num_cycles <= 0:
        print("Too few.")
    elif num_cycles >= 5:
        print("Too many.")
    else:
        for num_cycles in range (1, num_cycles + 1):
            print(num_cycles,":", "Lather and rinse.")
        print("Done.")
Answered By: Joseph Stoker
''' Your solution goes here '''
def print_shampoo_instructions(num_cycles):
    if num_cycles < 1:
        print('Too few.')
    elif num_cycles > 4:
        print('Too many.')
    else:
        i = 1
        while i <= num_cycles:
            print(f'{i} : Lather and rinse.')
            i += 1
        print('Done.')

user_cycles = int(input())
print_shampoo_instructions(user_cycles)
Answered By: Gradon Li
Categories: questions Tags:
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.