n=int(input("Number of items to be added on the list: "))
list1 = []
for i in range(n):
element = input("enter items:")
list1.append(element)
Asked
Active
Viewed 41 times
0

timgeb
- 76,762
- 20
- 123
- 145
-
Every input is considered character/string in python. But if you need to know if it's a number character consider checking ASCII table – Saikat Chakraborty Oct 14 '21 at 09:13
2 Answers
1
try:
float(your_input)
# it's a number
try:
int(your_input)
# it's a whole number
except ValueError:
# it's a decimal number
except ValueError:
# it's not a number

Mahrkeenerh
- 1,104
- 1
- 9
- 25
-
2this will only work for integers float(your_input) might a better option – Patrick Oct 14 '21 at 09:12
-
2You should prefer catching more specific errors. In this case, `ValueError`. – theherk Oct 14 '21 at 09:14
-
0
In my code, I try to avoid raising Exceptions for checks. Although this solution is more complex I would implement this check using a regular expression. More information on that can be found in this SO question. Note that I've added $
to the regex to match only consisting of a single number.
The complete code would look as follows:
import re
floatrgx = re.compile(r"[+-]?([0-9]*[.])?[0-9]+$")
n=int(input("Number of items to be added on the list: "))
list1 = []
for i in range(n):
element_is_float = False
while not element_is_float:
element = input(f"Enter next item ({i+1}/{n}):")
element_is_float = (not floatrgx.match(element) is None)
if not element_is_float:
print(f"Error: {element} is not a floating point number!")
list1.append(element)
Example output
Number of items to be added on the list: 3
Enter next item (1/3):3.1FOO13
Error: 3.1FOO13 is not a floating point number!
Enter next item (1/3):3.1415
Enter next item (2/3):pi
Error: pi is not a floating point number!
Enter next item (2/3):13
Enter next item (3/3):42
> list1
['3.1415', '13', '42']

André
- 1,034
- 9
- 19