繁体   English   中英

使用Python将整数转换为列表中的字符串时遇到麻烦

[英]Trouble converting integer to string in a list using Python

我正在尝试将列表中的某些整数转换为字符串,但是我不断收到一个错误,我认为这与将整数转换为字符串有关。 我已经尝试过str(),但似乎无法解决问题。 我想我可能在做其他错误。 我的代码如下:

intList = [1,2,3,4,5]

def fizzbuzz(intList):

    for e in intList:
        if (e % 3) ==0:
            e='Fizz'.join(str(e) for e in intList)
        if (e % 5) ==0:
            e='Buzz'.join(str(e) for e in intList)

print fizzbuzz (intList)

我收到此错误:

TypeError: not all arguments converted during string formatting

我也尝试过对其进行一些更改,但始终收到相同的字符串格式错误:

def fizzbuzz(intList):

    for e in intList:
        if (e % 3) ==0:
            intList.append(str('Fizz'))
        elif (e % 5) ==0:
            intList.append(str('Buzz'))
        else:
            intList.append(e)

print fizzbuzz (intList)

我想不出另一种解决字符串错误的方法。 我搜寻了一下,认为%可能有问题?

这里有些错误:

  1. 首先,我建议为函数中定义的参数和稍后输入函数的实际对象使用不同的名称。 这将有助于避免对您(作为初学者),对我们(试图帮助调试代码)以及将来与您一起工作或与之共事的人员造成混乱。
  2. 您说过您的目标是将一些整数元素转换为字符串,但是函数中使用的方法只会评估每个元素,然后根据条件(在if语句中) 添加一个附加字符串(“ Fizz”或“ buzz”) 添加到列表中,或元素(e)的其他副本添加到列表中。
  3. 您收到的错误是由于for循环到达列表的其他字符串元素而导致的,它不知道如何处理: if ('Fizz' % 3) ==0:
    模运算符只能处理整数。 不是字符串。

希望这将为您提供足够的见识来修复您的代码。 如果没有,那么我们在这里!

问题是由于这段代码:

if (e % 3) ==0:
    e='Fizz'.join(str(e) for e in intList)
if (e % 5) ==0:
    e='Buzz'.join(str(e) for e in intList)

如果e被3整除,则e更改为字符串。 然后,下一个if语句尝试将% e (字符串)减5。在Python中,带有字符串的%所做的事情与使用数字做的事情(将值替换为数字)完全不同,并且错误消息与此相关。

解决方案是对包含FizzBuzz的字符串使用不同的变量名。

您的代码还有其他问题; 当您遇到它们时再次询问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM