-1

my code not stop in line 9-10 when inserted words, I would like it to continue only when numbers are entered

from cs50 import get_int

numbers = []

while True:

    number = get_int("number: ")

    if not number:   #  here  #
        break        #  here  #

    if number not in numbers:
        numbers.append(number)

print()
for number in numbers:
    print(number)

need stopping if input not number

4 Answers4

0

You can parse the input string to be a number or not in a while True loop, if it is not a number, break the loop, else keep asking.

numbers = []

while True:

    #Ask for input
    s = input("number: ")
    number = 0

    #Try to parse the string as a number, if you cannot, break the loop
    try:
        number = int(s)
    except:
        break

    #If you can parse the string as a number, add it to the list
    numbers.append(number)

print(numbers)

Sample outputs will be

number: 123
number: 456
number: 789
number: abc
[123, 456, 789]
Devesh Kumar Singh
  • 20,259
  • 5
  • 21
  • 40
0

In Python 3, you can use the following to ensure number is an integer (whole number):

isinstance(number, int)

If either an integer or a float (number with decimals) is allowed, you can use the following:

isinstance(number, (int, float))

I highly recommend reading more about this subject in this answer.

0

You don't need to define a new function to do that.

numbers = []
while True:
    number = input("number: ")
    try:
        number = int(number)
        if number not in numbers:
            numbers.append(number)
    except:
        break   

print (numbers)
YusufUMS
  • 1,506
  • 1
  • 12
  • 24
0
try:
    if number == int(number):
        if number not in numbers:
           numbers.append(number)

except:
    #invalid input will throw you into this block
    break
Kaleba KB Keitshokile
  • 1,656
  • 1
  • 6
  • 12