保持在Python中获取没有所有参数转换的字符串格式化

2024-10-04 15:30:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我在第六行中不断收到错误消息,我不知道为什么。在格式化过程中,并不是所有的值都被转换。我正在尝试创建一个程序,从一系列数字中识别出一个唯一的数字。在

   def iq_test(numbers):
        oddlist = []
        evenlist = []
        numbers = numbers.split()
        for x in numbers:
            if x % 2 == 0:
                evenlist.append(x)
            if x % 2 != 0:
                oddlist.append(x)
        if len(evenlist) > len(oddlist):
            return "".join(oddlist)
        else:
            return "".join(evenlist)

Tags: 程序消息lenreturnif过程def错误
2条回答

Python的split函数返回字符串列表。因此,for循环中的每个x值实际上是x是什么数字的字符串表示。这意味着您对x执行的任何算术/数字操作都将失败,因为您不能对字符串执行数值操作。在

只需执行int(x)将任何数字字符串转换为int。(即int("3") % 2 == 1

看起来这个函数应该从一个输入列表中返回一个较短的偶数或奇数列表。{这样做的结果基本上是在字符串列表之后:

>>> "1" % 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: not all arguments converted during string formatting

解决方法如下:

^{pr2}$

输出:

Numbers? 1 2 3 4 5
[2, 4]

相关问题 更多 >

    热门问题