#user inputs a number
number = input("Enter number: ")
# 1) changes dot and creates a new string,2) verifies is it a number
if(not number.replace(".","").isnumeric()):
print("Sorry number is not numeric")
通常替换将旧值更改为新值。
isnumeric
返回True当且仅当字符串的每个字符都是Unicode定义的数字字符。句点不是数字,但许多包含或表示数字的字符,如½
或六
,都被视为数字。
首先,您可能需要isdigit
,因为Unicode中的许多数字字符在浮点数中无效。只有当每个字符都是ASCII数字0-9中的一个时,isdigit
才会返回True。
其次,为了验证输入是否为浮点;"宁求宽恕,不求许可":尝试直接将其转换为浮点,看看是否失败:
try:
float(number)
except ValueError:
print("Sorry number is not a float")
number = input("Enter number: ")
if(not number.replace(".","").isnumeric()):
print("Sorry number is not numeric")
替换此处更改点,创建一个新字符串,并使isnumeric((对于浮点数为True。