有人可以向我解释为什么python 3.4在没有我明确要求的情况下将字符串解析为int

埃陶因·什鲁(Etaoin Shrdlu)

我很困惑,这令人难以置信,这可能是一个愚蠢的错误,但是我对此行为完全迷住了。这是小算法(我认为应该如此):

a, b, n = input().split()
x = 0

def prod(num):
    x=1
    for y in range(len(num)):
        if int(num[y])>0:
           x*=int(num[y])
    x+=int(num)
    return x

while x < int(n):
    a, b = b, prod(b)+prod(a)
    print(b, end=' ')
    x+=1

这显然是我必须要做的才能使它起作用:

a, b, n = input().split()
x = 0

def prod(num):
    x=1
    for y in range(len(str(num))):
        if int(str(num)[y])>0:
           x*=int(str(num)[y])
    x+=int(num)
    return x

while x < int(n):
    a, b = b, prod(b)+prod(a)
    print(b, end=' ')
    x+=1

因此,如果不清楚,我的问题出在prod函数中。似乎没有明显的原因将字符串转换为int。

我提供的输入1 100 3应该是这种格式。

马丁·彼得斯(Martijn Pieters)

Python并不是将您的字符串隐式地转换为整数,不是。而是给函数一个整数。

您将从prod()下一个操作返回一个整数,然后将该整数传递给该prod()函数。

这些步骤是:

  1. a, b, n = '1', '100', '3'
  2. call prod('100') + prod('1'),产生101 + 23,是一个整数。
  3. a, b = '100', 3,所以现在b是整数,请转到下一个迭代。
  4. 打电话prod(3) + prod('100'); 您将整数传递给函数。

也许您需要转换总和以返回一个字符串prod()将您的退货单更改为:

return str(x)

或者prod()结果的总和应该是一个字符串:

a, b = b, str(prod(b) + prod(a))

您可以将函数简化为直接迭代num,并使用单个字符也具有顺序的事实:

def prod(num):
    x = 1
    for digit in num:
        if digit > '0':
           x *= int(digit)
    x += int(num)
    return x  # or `str(x) if a string is expected

您的while循环应该只是与的for循环range()

for iteration in range(int(n)):
    a, b = b, str(prod(b) + prod(a))
    print(b, end=' ')

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有人可以向我解释为什么mod(-4)3 = 2而不是1?

来自分类Dev

有人可以向我解释为什么该按钮不起作用吗?

来自分类Dev

有人可以向我解释为什么0.15-0.10 = 0.049吗?

来自分类Dev

有人可以向我解释为什么L(long)必须存在吗?

来自分类Dev

有人可以向我解释为什么我的函数返回0而不是1吗?

来自分类Dev

有人可以向我解释为什么函数内的参数立即被赋值给对象的值吗?

来自分类Dev

有人可以向我解释为什么绑定方法在这些示例中不起作用

来自分类Dev

有人可以解释为什么这不会画圆吗?它大约画了3/4

来自分类Dev

有人可以解释为什么printf(“%s”,str + str [0]-str [3]); 在C中工作?

来自分类Dev

有人可以解释为什么我的Python图无法显示任何内容吗?

来自分类Dev

有人可以解释为什么我在 Python 中得到这个输出吗?

来自分类Dev

有人可以向我解释这种 3-way-quicksort 的实现吗

来自分类Dev

有人可以解释为什么我的输入字段值没有变化

来自分类Dev

有人向我解释为什么我们从不直接在 Redux 中写入状态?

来自分类Dev

有人可以向我解释什么是stty吗?

来自分类Dev

有人可以向我解释为什么这些箭头函数中的关键字`this`在这些示例中以给定的值结尾

来自分类Dev

在JavaScript中重新分配全局变量-有人可以向我解释为什么currentAcc保持未定义状态

来自分类Dev

有人可以向我解释为什么“this”不等于以下 javascript IIFE 代码中的 win 或 window 吗?

来自分类Dev

有人可以解释为什么我的右课突然弹出吗?

来自分类Dev

有人可以解释为什么我用sql查询得到这个错误

来自分类Dev

有人可以解释为什么我的for循环在错误的地方停止

来自分类Dev

有人可以解释为什么我遇到类型错误吗?

来自分类Dev

有人可以解释为什么此代码返回6 6 6 6 6而不是1 2 3 4 5

来自分类Dev

我认为我不完全了解realloc,有人可以向我解释为什么我的代码中的realloc有时会失败,但有时却不会

来自分类Dev

有人可以解释为什么对阵列进行的这些特定更改可以解决我的错误吗?

来自分类Dev

有人可以解释为什么转换为int并使用read行而不是Read解决了我的问题吗?

来自分类Dev

有人可以解释为什么我的jquery点击处理程序停止工作吗?

来自分类Dev

有人可以解释为什么我的相邻选择器在jQuery中无法按预期工作吗?

来自分类Dev

引导程序。有人可以解释为什么我在图片的上方和下方进行填充吗?

Related 相关文章

  1. 1

    有人可以向我解释为什么mod(-4)3 = 2而不是1?

  2. 2

    有人可以向我解释为什么该按钮不起作用吗?

  3. 3

    有人可以向我解释为什么0.15-0.10 = 0.049吗?

  4. 4

    有人可以向我解释为什么L(long)必须存在吗?

  5. 5

    有人可以向我解释为什么我的函数返回0而不是1吗?

  6. 6

    有人可以向我解释为什么函数内的参数立即被赋值给对象的值吗?

  7. 7

    有人可以向我解释为什么绑定方法在这些示例中不起作用

  8. 8

    有人可以解释为什么这不会画圆吗?它大约画了3/4

  9. 9

    有人可以解释为什么printf(“%s”,str + str [0]-str [3]); 在C中工作?

  10. 10

    有人可以解释为什么我的Python图无法显示任何内容吗?

  11. 11

    有人可以解释为什么我在 Python 中得到这个输出吗?

  12. 12

    有人可以向我解释这种 3-way-quicksort 的实现吗

  13. 13

    有人可以解释为什么我的输入字段值没有变化

  14. 14

    有人向我解释为什么我们从不直接在 Redux 中写入状态?

  15. 15

    有人可以向我解释什么是stty吗?

  16. 16

    有人可以向我解释为什么这些箭头函数中的关键字`this`在这些示例中以给定的值结尾

  17. 17

    在JavaScript中重新分配全局变量-有人可以向我解释为什么currentAcc保持未定义状态

  18. 18

    有人可以向我解释为什么“this”不等于以下 javascript IIFE 代码中的 win 或 window 吗?

  19. 19

    有人可以解释为什么我的右课突然弹出吗?

  20. 20

    有人可以解释为什么我用sql查询得到这个错误

  21. 21

    有人可以解释为什么我的for循环在错误的地方停止

  22. 22

    有人可以解释为什么我遇到类型错误吗?

  23. 23

    有人可以解释为什么此代码返回6 6 6 6 6而不是1 2 3 4 5

  24. 24

    我认为我不完全了解realloc,有人可以向我解释为什么我的代码中的realloc有时会失败,但有时却不会

  25. 25

    有人可以解释为什么对阵列进行的这些特定更改可以解决我的错误吗?

  26. 26

    有人可以解释为什么转换为int并使用read行而不是Read解决了我的问题吗?

  27. 27

    有人可以解释为什么我的jquery点击处理程序停止工作吗?

  28. 28

    有人可以解释为什么我的相邻选择器在jQuery中无法按预期工作吗?

  29. 29

    引导程序。有人可以解释为什么我在图片的上方和下方进行填充吗?

热门标签

归档