这个c代码 转python 执行结果不正确
先看c 代码的代码及执行效果图:本帖最后由 wp231957 于 2022-2-22 09:16 编辑
看一下python代码 y=1.5
x=-1.5
while y>-1.5:
while x<1.5:
a=x**2+y**2-1
print("*",end="") if a**3-(x**2)*(y**3)<=0 else print(" ",end="")
x+=0.05
y-=0.1
print()
这个代码运行啥结果也没有就是一大堆的空白行
不知道哪里转译错误呢 本帖最后由 isdkz 于 2022-2-22 09:53 编辑
两个问题:
第一个问题:python浮点数运算会溢出,所以最好用Decimal
第二个问题:内层for循环在外层for循环每一次循环的时候 x 会初始化为 -1.5,
所以你要用while循环的话,把 x 的赋值放到外层 while 循环里面
故对你的代码修改如下:
from decimal import Decimal
y=Decimal('1.5')
while y>-1.5:
x=Decimal('-1.5')
while x<1.5:
a=x**2+y**2-1
print("*",end="") if a**3-(x**2)*(y**3)<=0 else print(" ",end="")
x+=Decimal('0.05')
y-=Decimal('0.1')
print()
isdkz 发表于 2022-2-22 09:50
两个问题:
第一个问题:python浮点数运算会溢出,所以最好用Decimal
新手村错误 惭愧 isdkz 发表于 2022-2-22 09:50
两个问题:
第一个问题:python浮点数运算会溢出,所以最好用Decimal
关键for循环它不支持浮点步长啊 wp231957 发表于 2022-2-22 10:04
新手村错误 惭愧
有时候不小心犯这种低级错误也正常,
我看代码也没能找出来,我都是每一步 print 一下变量的值才能发现
页:
[1]