为什么在这个代码中替换批准浮点数为数字.我尝试过不替换的浮动,我得到的信息是它不是一个数字


#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。

最新更新