Python Forum
My code doesn't work, can someone help me?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
My code doesn't work, can someone help me?
#1
my code:

largest = None smallest = None while True: num = input("Enter a number: ") if num == "done" : break try: num1 = int(num) except ValueError: print('Invalid input') continue for number1 in num: if largest is None: largest = number1 elif largest > number1: largest = number1 print("Maximum is", largest) for number2 in num: if smallest is None: smallest = number2 elif smallest < number2: smallest = number2 print("Minimum is", smallest)
My desired output would be if I used 2,8,9,python,4,10 would be:

Invalid input
Maximum is 10
Minimum is 2

But my output shows:

Invalid input
Maximum is d ← Mismatch
Minimum is o ← Mismatch

d and o are from word done Wall
buran write Dec-21-2020, 11:23 AM:
Please, use proper tags when post code, traceback, output, etc. This time I have added tags for you.
See BBcode help for more info.
Reply
#2
You are using num for the input, then expect that num will end up being the list that you can cycle over, and you also never append the integer to the list.
Minor changes, try:
largest = None smallest = None num = [] while True: num_input = input("Enter a number: ") if num_input == "done" : break try: num1 = int(num_input) num.append(num1) except ValueError: print('Invalid input') continue for number1 in num: if largest is None: largest = number1 elif largest > number1: largest = number1 print("Maximum is", largest) for number2 in num: if smallest is None: smallest = number2 elif smallest < number2: smallest = number2 print("Minimum is", smallest)
Output:
Enter a number: 2 Enter a number: 8 Enter a number: 9 Enter a number: python Invalid input Enter a number: 4 Enter a number: 10 Enter a number: done Maximum is 2 Minimum is 10
Reply
#3
Oh, and btw - you reverse minimum and maximum as shown in results above.
Reply
#4
Hint: Use a function to split user-input and logic to get minimum and maximum.


def get_number(): """ Helper function to get one int from user input """ while True: num_input = input("Enter a number: ") if num_input.lower() == "done": return None try: return int(num_input) except ValueError: print('Invalid input') def get_min_max(): """ Primitive implementation using a list with min and max. """ numbers = [] while True: number = get_number() if number is None: break numbers.append(number) return min(numbers), max(numbers) def get_min_max_oneshoot(): """ Returns minimum and maximum of entered ints. The ints itself are not stored in a list. """ first_run = True minimum = None maximum = None while True: number = get_number() if number is None: break if first_run: first_run = False minimum = number maximum = number continue minimum = min(number, minimum) maximum = max(number, maximum) return minimum, maximum min_value_1, max_value_1 = get_min_max_oneshoot() # min_value_2, max_value_2 = get_min_max()
The function get_min_max is the easier implementation.
get_min_max_oneshoot is like your implementation, but without storing any history values.
You get only min and max, all other values are not stored.
Almost dead, but too lazy to die: https://sourceserver.info
All humans together. We don't need politicians!
Reply
#5
(Dec-21-2020, 01:09 PM)jefsummers Wrote: Oh, and btw - you reverse minimum and maximum as shown in results above.

Thank you for your help, my head almost exploded from this one. Smile
Reply
#6
(Dec-21-2020, 01:51 PM)DeaD_EyE Wrote: Hint: Use a function to split user-input and logic to get minimum and maximum.


def get_number(): """ Helper function to get one int from user input """ while True: num_input = input("Enter a number: ") if num_input.lower() == "done": return None try: return int(num_input) except ValueError: print('Invalid input') def get_min_max(): """ Primitive implementation using a list with min and max. """ numbers = [] while True: number = get_number() if number is None: break numbers.append(number) return min(numbers), max(numbers) def get_min_max_oneshoot(): """ Returns minimum and maximum of entered ints. The ints itself are not stored in a list. """ first_run = True minimum = None maximum = None while True: number = get_number() if number is None: break if first_run: first_run = False minimum = number maximum = number continue minimum = min(number, minimum) maximum = max(number, maximum) return minimum, maximum min_value_1, max_value_1 = get_min_max_oneshoot() # min_value_2, max_value_2 = get_min_max()
The function get_min_max is the easier implementation.
get_min_max_oneshoot is like your implementation, but without storing any history values.
You get only min and max, all other values are not stored.

Thank you for the help, I appreciate it.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  PIP doesn't work YKR 1 1,488 Mar-28-2025, 02:10 PM
Last Post: snippsat
  I'm trying to install python 3.11.11 on windows 10 - it doesn't work Petonique 2 5,017 Feb-04-2025, 05:42 PM
Last Post: snippsat
  Can't get graph code to work properly. KDDDC2DS 1 1,177 Sep-16-2024, 09:17 PM
Last Post: deanhystad
  I can't for the life of me get this basic If statement code to work CandleType1a 8 3,297 May-21-2024, 03:58 PM
Last Post: CandleType1a
  Extending list doesn't work as expected mmhmjanssen 2 2,481 May-09-2024, 05:39 PM
Last Post: Pedroski55
  hi need help to make this code work correctly atulkul1985 5 2,801 Nov-20-2023, 04:38 PM
Last Post: deanhystad
  newbie question - can't make code work tronic72 2 2,122 Oct-22-2023, 09:08 PM
Last Post: tronic72
  Why doesn't calling a parent constructor work with arbitrary keyword arguments? PurposefulCoder 4 2,757 Jun-24-2023, 02:14 PM
Last Post: deanhystad
  Code works but doesn't give the right results colin_dent 2 1,896 Jun-22-2023, 06:04 PM
Last Post: jefsummers
  Beginner: Code not work when longer list raiviscoding 2 2,318 May-19-2023, 11:19 AM
Last Post: deanhystad

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020
This forum uses Lukasz Tkacz MyBB addons.
Forum use Krzysztof "Supryk" Supryczynski addons.