Python 如何检查是否存在科学符号?

Python 如何检查是否存在科学符号?,python,python-3.x,numpy,Python,Python 3.x,Numpy,正如上面的例子所示,我想检查一个数字在另一个if条件之前是否有科学符号。如前所述,科学符号不是一种类型,它是一种表示。 如果希望返回某个值的科学表示法num,则可以使用{.2e}.format(num),其中.2表示2个小数点,e表示科学表示法 (对于一般用途,您可以放弃.2)当转换为字符串或从字符串转换为浮点数时,浮点数可以表示为科学符号,因此讨论数字的字符串表示形式是否为科学符号才有用。数字本身在内部只是一个二进制浮点数 如果要确定字符串是否表示浮点数,最简单的方法是尝试将其转换,如果无法转

正如上面的例子所示,我想检查一个数字在另一个if条件之前是否有科学符号。

如前所述,科学符号不是一种类型,它是一种表示。 如果希望返回某个值的科学表示法
num
,则可以使用
{.2e}.format(num)
,其中
.2
表示2个小数点,
e
表示科学表示法
(对于一般用途,您可以放弃
.2

当转换为字符串或从字符串转换为浮点数时,浮点数可以表示为科学符号,因此讨论数字的字符串表示形式是否为科学符号才有用。数字本身在内部只是一个二进制浮点数

如果要确定字符串是否表示浮点数,最简单的方法是尝试将其转换,如果无法转换,则捕获错误:

def fun(number):
   #Here in  I want to check scientific notation or not 

   if type(number)==int or type(number)==float :
       do something 
然后,如果字符串表示一个浮点数,您可以测试它是否包含
“e”
,以判断它是否是科学符号:

usr_input = input("enter a number")
try:
    float(usr_input)
except:
    print("input is not a valid floating point number")

你的意思是如果
number
是一个字符串?如果没有,它就没有任何符号。科学符号不是一种数字。这是一种显示数字的方式。问一个数字是否“有科学符号”是没有意义的。数字的符号是在你把它转换成字符串时确定的。您可以选择是否使用科学记数法。
numpy
如果元素的数字范围足够宽,则自动使用科学记数法显示数组,例如对于
np.array([.0012123])
显示为
数组([1.20e-03,1.23e+02])
。如果number=1.3577e-05,有没有办法检查数字是否有e?如果
number
是一个字符串,您可以在数字中检查
e
是否为float或int?int或float中不包含字母注意:iirc
str(某些浮点)
的默认字符串格式取决于操作系统。通常都很相似,但是。
if 'e' in usr_input.lower(): #convert to lower case so we don't have to also check for "E"
    print("scientific notation")