如何解决Python:如果给定x,y或x + y2中的任何两个参数,我编写代码一切正常,直到x或y浮动为止
此代码用于查找(x + y)^ 2 = x ^ 2 + 2xy + y ^ 2中任一因子的值
有三个因素,x,y和结果。该值必须可用于任何两个。
这里唯一的问题是,如果x或y是浮动的,则找不到它们的值。为此,我期待在Google中使用我可以理解的数学库。
x = (input("\nEnter value of x: "))
y = (input("\nEnter value of y: "))
z = (input("\nEnter value of (x+y)^2: "))
#-----------------------------------------------------------------------
#Converting input to integers.
#-----------------------------------------------------------------------
a=0.0
b=0.0
c=0.0
if len(x)!=0:
a = float(x)
else:
print ("\nWe will search value of 'x'")
if len(y)!=0:
b = float(y)
else:
print ("\nWe will search value of 'y'")
if len(z)!=0:
c = float(z)
else:
print ("\nWe will search value of '(x+y)^2'")
#-----------------------------------------------------------------------
#Calculations
#-----------------------------------------------------------------------
from math import sqrt
fv=0.0 #fv = find value
rs=0.0 #rs = result
if len(x)==0:
while True:
rs = ((fv*fv) + (2*fv*b) + (b*b))
fv = fv + 1
if rs==c:
print (f"\nValue of 'x' is either {(fv-1)} or {((sqrt(c)*-1) - b)}")
break
if len(y)==0:
while True:
rs = ((a*a) + (2*a*fv) + (fv*fv))
fv = fv+1
if rs==c:
print (f"\nValue of 'y' is either {(fv-1)} or {((sqrt(c)*-1) - a)}")
break
if len(z)==0:
rs = ((a*a) + (2*a*b) + (b*b))
print (f"\nValue of '(x+y)^2' is {rs}")
print ("\nThank you")
解决方法
尝试
print ("\n\nEnter values in below equations. \nIf you don't know the value,than press \"Enter\" ")
x = (input("\nEnter value of x: "))
y = (input("\nEnter value of y: "))
z = (input("\nEnter value of (x+y)^2: "))
#-----------------------------------------------------------------------
#Converting input to integers.
#-----------------------------------------------------------------------
a=0
b=0
c=0
if len(x)!=0:
a = float(x)
else:
print ("\nWe will search value of 'x'")
if len(y)!=0:
b = float(y)
else:
print ("\nWe will search value of 'y'")
if len(z)!=0:
c = int(z)
else:
print ("\nWe will search value of '(x+y)^2'")
#-----------------------------------------------------------------------
#Calculations
#-----------------------------------------------------------------------
from math import sqrt
fv=0 #fv = find value
rs=0 #rs = result
if len(x)==0:
while True:
rs = ((fv*fv) + (2*fv*b) + (b*b))
fv = fv + 1
if rs==c:
print (f"\nValue of 'x' is either {(fv-1)} or {int((sqrt(c)*-1) - b)}")
break
if len(y)==0:
while True:
rs = ((a*a) + (2*a*fv) + (fv*fv))
fv = fv+1
if rs==c:
print (f"\nValue of 'y' is either {(fv-1)} or {int((sqrt(c)*-1) - a)}")
break
if len(z)==0:
rs = ((a*a) + (2*a*b) + (b*b))
print (f"\nValue of '(x+y)^2' is {rs}")
print ("\nThank you")
只需将int更改为float
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。