在Python中,我如何解析数字字符串,如"545.2222"相应的浮点值,545.2222?或者将字符串解析为"31"整数,31?
我只是想知道如何将一个浮点数 解析str为a float,并且(单独)将一个int 解析str为一个int.
检查字符串是否可以在Python中表示为数字的最佳方法是什么?
我目前拥有的功能是:
def is_number(s):
try:
float(s)
return True
except ValueError:
return False
Run Code Online (Sandbox Code Playgroud)
这不仅是丑陋而且缓慢,似乎很笨重.但是我没有找到更好的方法,因为调用floatmain函数更糟糕.
如何使用正则表达式从字符串中提取double值.
import re
pattr = re.compile(???)
x = pattr.match("4.5")
Run Code Online (Sandbox Code Playgroud) 是否有一些功能,str.isnumeric但适用于浮动?
'13.37'.isnumeric() #False
Run Code Online (Sandbox Code Playgroud)
我还是用这个:
def isFloat(string):
try:
float(string)
return True
except ValueError:
return False
Run Code Online (Sandbox Code Playgroud) 我需要将包含内存使用量的字符串1048576(例如:(1M))转换为人类可读的版本,反之亦然.
注意:我已经看过这里了: 可重用的库,以获得文件大小的人类可读版本?
在这里(即使它不是python): 如何将人类可读的内存大小转换为字节?
到目前为止没有什么能帮助我,所以我在其他地方看了
我在这里找到了一些可以解决此问题的内容:http://code.google.com/p/pyftpdlib/source/browse/trunk/test/bench.py?specpec = swn984&r = 984#137,或者,对于较短的网址:http://goo.gl/zeJZl
代码:
def bytes2human(n, format="%(value)i%(symbol)s"):
"""
>>> bytes2human(10000)
'9K'
>>> bytes2human(100001221)
'95M'
"""
symbols = ('B', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y')
prefix = {}
for i, s in enumerate(symbols[1:]):
prefix[s] = 1 << (i+1)*10
for symbol in reversed(symbols[1:]):
if n >= prefix[symbol]:
value = float(n) / prefix[symbol]
return format % locals()
return format % dict(symbol=symbols[0], value=n)
Run Code Online (Sandbox Code Playgroud)
还有一个转换功能(相同的网站):
def human2bytes(s): …Run Code Online (Sandbox Code Playgroud) 所以我正在创建一个程序来显示数字系统,但是我在第一个障碍时遇到了问题.该程序将从用户那里获取一个数字,然后在整个程序中使用该数字,以便解释几个计算机科学概念.
在解释我的第一部分编号系统时,程序会说出它是什么类型的编号.我这样做是通过将字符串转换为浮点数来实现的.如果浮点数后面只有".0",那么它将它转换为整数.
目前我正在使用此代码
while CorrectNumber == False:
try:
Number = float(NumberString) - 0
print (Number)
except:
print ("Error! Not a number!")
Run Code Online (Sandbox Code Playgroud)
这很有用,因为它显示用户是否输入了数字.但是,我不确定如何检查小数位后的值,以检查是否应将其转换为整数.有小费吗?
g = [('Books', '10.000'),('Pen', '10'),('test', 'a')]
这里'10.000'和'10'是字符串
如何转换为以下格式,字符串为浮动
预计出
[('Books', 10.000),('Pen', 10),('test', 'a')]
Run Code Online (Sandbox Code Playgroud)
这里10.000和10是浮点数,a必须是字符串
newresult = []
for x in result:
if x.isalpha():
newresult.append(x)
elif x.isdigit():
newresult.append(int(x))
else:
newresult.append(float(x))
print(newresult)
Run Code Online (Sandbox Code Playgroud)
我有错误 AttributeError: 'tuple' object has no attribute 'isalpha'