【发布时间】:2013-10-13 18:23:41
【问题描述】:
我被赋予了一串数字,并被要求仅重现字符串中的数字,该函数在函数内打印,我可以使用以下功能进行操作。
# function that prints, no return the values in list
def reprint (f) :
for numbers in (f):
tokens = numbers.split(',')
for values in tokens :
print values,
print
#Main
stringlist =["1,25,999",
"123.4,56.7890,13.571",
"1,23.45,6,7.8"]
reprint (stringlist)
返回
1 25 999
123.4 56.7890 13.571
1 23.45 6 7.8
不过,诀窍是让浮点数打印小数点后 2 位,这就是我卡住的地方。我尝试添加类似
if '.' in values :
print "%.2f" % (values)
else print "%d" % (values)
但这不起作用,我收到一条错误消息,说 print "3%d" % (values) 类型错误:%d 格式:需要一个数字,而不是 str。关于如何将字符串视为数字的任何想法?
预期输出 =
1 25 999
123.40 56.79 13.57
1 23.45 6 7.80
【问题讨论】:
-
不能使用任何类型的转换方法。这家伙强调如果'。在某种程度上,我猜这就是技巧的一部分
-
print "3%d" % (float(values))和类似的int()用于第二种情况 -
如果字符串包含
.使用float()将其转换为float 如果不是,使用int() -
这是一种糟糕的输入格式
-
@ZachSantiago:
no sort of conversion methods can be used是什么意思?
标签: python