嗨,我有一个问题...
作为一名 Python 初学者,我想问一下如何让我的代码检查输入来自用户数字或字母 ?
if age == int or float:
print("Ok, zavrsili smo sa osnovnim informacijama! Da li zelite da ih uklopimo i pokazemo Vase osnovne informacije? DA ili NE ?")
elif age == False:
print("Hej, to nije broj... Pokusaj ponovo")
这是我遇到问题的代码的一部分。我想声明如果用户输入他的年龄作为数字,代码继续。但是,如果用户输入的不是数字,代码会告诉他从头开始(所有打印语句都是用塞尔维亚语写的,希望你不要介意:D)
答案 0 :(得分:1)
最简单的方法是在 while
循环中提示用户输入,try
将其转换为 float
,如果您使用 break
重新成功。
while True:
try:
age = float(input("Please enter your age as a number: "))
break
except ValueError:
print("That's not a number, please try again!")
# age is guaranteed to be a numeric value (float) -- proceed!
答案 1 :(得分:0)
isinstance(x, int) # True
或者你可以试试
使用断言语句
assert <condition>,<error message>
例如
assert type(x) == int, "error"
答案 2 :(得分:0)
假设您通过 input(..) 调用从用户那里获取值 'age' 然后检查 age
是否为数字:
age = input('Provide age >')
if age.isnumeric():
age = int(age)
print("Ok, zavrsili smo sa osnovnim informacijama! Da li zelite da ih uklopimo i pokazemo Vase osnovne informacije? DA ili NE ?")
else:
print("Hej, to nije broj... Pokusaj ponovo")
答案 3 :(得分:0)
使用函数检查字符串类型
def get_type(s):
''' Detects type of string s
Return int if int, float if float, or None for non-numeric string '''
if s.isnumeric():
return int # only digits
elif s.replace('.', '', 1).isnumeric():
return float # single decimal
else:
return None # returns None for non-numeric string
# Using function
age = input("What is your age?")
if not get_type(age) is None:
print(f'Valid age {age}')
else:
print(f'Value {age} is not a valid age')
示例运行
What is your age?25
Valid age 25
What is your age?12.5
Valid age 12.5
What is your age?12.3.5
Value 12.3.5 is not a valid age