[英]How to remove string quotations, commas and parenthesis from Python itertools output?
[英]How to remove parenthesis from output python
所以我有一个不断吐出的 function:
(10.3,11.4)
什么时候应该吐出来:
10.3 11.4
我玩了一下,写了一个简单的 python 代码,我似乎理解了这个概念
a=3
b=3
print a,b #returns 3 3
但它不适用于下面的 function,所以我想知道为什么它一直返回 ()
import math
x=10.01
y=9.01
def d():
b = 2.00 * x / math.sqrt(7)
q=round(y-b,2)
r=round(y+b,2)
return q,r
print d() #returns (1.4399999999999999, 16.579999999999998)
print
(正确)打印从d返回的元组。 要单独打印值,请尝试以下操作:
print '{} {}'.format(*d())
或这个:
dret = d()
print dret[0],dret[1]
print a,b
不将a,b
解释为元组,而是作为print
语句的一系列参数。 请注意, print
语句会更改Python3中的语法,以增加混淆。
为了使a,b
情况与q,r
情况平行,它看起来更像是这样的:
c = a,b
print c
在这种情况下, print
语句将接收元组,而不是两个单独的值。
原因在于声明“return q,r”
您无法从函数返回多个值。 python正在做的是用q和r创建一个元组,并返回它,因为返回q,r被解释为return(q,r)然后print接受并输出一个元组。 因此打印(q,r)非常公平
但是,print q,r的执行方式不同,作为多参数打印,并将打印所有参数,其间包含空格。
希望这可以解决任何困惑。
从官方文件;
因此,从像这样的函数返回多个值,按照定义将它们返回到元组中。
尝试显式解包由d()
返回的元组:
In [1]: import math
In [2]: x=10.01
In [3]: y=9.01
In [4]: def d():
...: b = 2.00 * x / math.sqrt(7)
...: q=round(y-b,2)
...: r=round(y+b,2)
...: return q,r
...:
In [5]: a, b = d()
In [6]: print a, b
1.44 16.58
math.sqrt 返回一个具有实部和虚部的复数。 将其更改为 math.sqrt(7).real,复数仅为实数。 这使印刷品如您所愿
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.