水仙花数 报错
for i in range(100,1000):a=i/100,b=i/10%10,c=i%10
if i==a**3+b**3+c**3:
print(i)
SyntaxError: cannot assign to operator
这个报错是啥意思? 代码连用要用分号 本帖最后由 青出于蓝 于 2021-7-20 18:32 编辑
a,b,c求的也不对,稍微修改
for i in range(100,1000):
a=(i//100)%100;b=i//10%10;c=i%10
if i==a**3+b**3+c**3:
print(i)
欢迎追问
如果问题已解决,请设置最佳答案 你看起来学过c++,c++的一些运算可以用逗号分隔,而python不行
c++用分号来做结尾,python按一般却不用分号做一行的结尾,python用分号分隔开一些代码
你的代码要改成这样:
for i in range(100,1000):
a=i/100;b=i/10%10;c=i%10
if i==a**3+b**3+c**3:
print(i)
求个最佳{:10_254:} 第一次回复好激动哟!
啥都别说:上代码:
for i in range(100,1000):
a=i/100
b=i/10%10
c=i%10
if i == int((a**3)+(b**3)+(c**3)):
print(i)
我用了int整型了一下数据,因为我运行(a**3)+(b**3)+(c**3)时结果是 xxx.xx等 有小数点的数字。甩掉尾巴再去作比较。结果就出来了。 本帖最后由 柿子饼同学 于 2021-7-20 19:25 编辑
嗯你这个程序有两个错误
一个是代码连用要用分号而不是逗号
二是除的时候要用地板除法,这样得数才是整数,不然是算不出来的
# 水仙花数
for i in range(100,1000):
a = i // 100; b = i // 10 % 10; c = i % 10
if i == a**3 + b**3 + c**3:
print(i)
代码如上
另外就是为了代码整洁,不得已的时候不要连用代码,分行更好
然后就是该空行要空行,这样代码才不至于难看{:10_277:}
所以建议改成这样:
# 水仙花数
for i in range(100,1000):
a = i // 100
b = i // 10 % 10
c = i % 10
if i == a**3 + b**3 + c**3:
print(i)
Python3代码样式指导手册(PEP8)
https://fishc.com.cn/thread-139746-1-1.html
(出处: 鱼C论坛)
顶一下三楼,求各位上的数字时要用地板除(//),否则取余时就是小数了{:10_256:} xiaosi4081 发表于 2021-7-20 17:07
你看起来学过c++,c++的一些运算可以用逗号分隔,而python不行
c++用分号来做结尾,python按一般却不用 ...
是的,看得多了有点乱,非常感谢 青出于蓝 发表于 2021-7-20 17:07
a,b,c求的也不对,稍微修改
欢迎追问
谢谢啦 Absean 发表于 2021-7-20 17:31
第一次回复好激动哟!
啥都别说:上代码:
鱼友,你的这个代码还是有点问题哦,参考别的鱼友的看下哈,希望有帮助 古明地·恋 发表于 2021-7-20 19:22
顶一下三楼,求各位上的数字时要用地板除(//),否则取余时就是小数了
是的,我在IDLE里面运行结果是一样的,这是为啥? 2.7的版本 孤山空影 发表于 2021-7-21 10:46
是的,我在IDLE里面运行结果是一样的,这是为啥? 2.7的版本
你是学习嘛,学习用最新版哦
页:
[1]