787047636 发表于 2020-7-14 18:08:47

求水仙花程序无法运行

for number in (100,1000):
    i="number"
    if number==int(i)**3+(inti)**3+int(i)**3:
      print(number)

Twilight6 发表于 2020-7-14 18:11:37

本帖最后由 Twilight6 于 2020-7-14 18:14 编辑


第一个错误:

你把 number 变量转为字符串 要用 str 函数 ,不能直接加 引号,否则代表的是 'number' 字符串

第二个错误:

你的第二个 int 括号位置错了,订正下即可

第三个错误:

把 for number in (100,1000) 改为 for number in range(100,1000)

因为 (100,1000) 表示的是个元组内有 100 和 1000 两个元素 , 而 range(100,1000) 表示的是从 100~ 999 个整数序列

正确代码:
for number in range(100,1000):
    i = str(number)
    if number == int(i)**3+int(i)**3+int(i)**3:
      print(number)

zltzlt 发表于 2020-7-14 18:12:10

本帖最后由 zltzlt 于 2020-7-14 18:14 编辑

1. 是 range(100, 1000) 不是 (100, 1000),因为题目要求是遍历 100 ~ 999 这个范围而不是遍历 100 和 1000 这两个数字

2. i = "number" 这一句只是将 i 赋值为 "number" 字符串,猜你是想将 number 转化为字符串再赋值给 i,应该写成 i = str(number)

3. 第三行 int() 漏了括号

正确代码如下:

for number in range(100, 1000):
    i = str(number)
    if number == int(i) ** 3 + (int(i)) ** 3 + int(i) ** 3:
      print(number)

冬雪雪冬 发表于 2020-7-14 18:15:12

for number in range(100,1000):
    i=str(number)
    if number==int(i)**3+int(i)**3+int(i)**3:
      print(number)

星空下的行者G 发表于 2020-7-15 23:34:09

zltzlt 发表于 2020-7-14 18:12
1. 是 range(100, 1000) 不是 (100, 1000),因为题目要求是遍历 100 ~ 999 这个范围而不是遍历 100 和 1000 ...

萌新一个,想问下第三行第二个int外面为什么又要再加括号呢

zltzlt 发表于 2020-7-16 18:56:24

星空下的行者G 发表于 2020-7-15 23:34
萌新一个,想问下第三行第二个int外面为什么又要再加括号呢

调用 int() 函数必须要加括号。

zltzlt 发表于 2020-7-16 19:10:05

如果你的问题已解决,请设置【最佳答案】

ThreeCat 发表于 2020-7-16 20:43:12

水仙花不是用%取余和//地板除做的吗?这是哪一节的,不过这样看起来好简单,直接用下标取值。。
页: [1]
查看完整版本: 求水仙花程序无法运行