当前位置: 首页 > 知识库问答 >
问题:

TypeError:在设置python字符串格式期间未转换所有参数

叶健柏
2023-03-14

程序应该接受两个名称,如果它们的长度相同,它应该检查它们是否是相同的单词。如果是同一个单词,它将打印“名称相同”。如果它们长度相同但字母不同,则会打印“名称不同但长度相同”。我遇到问题的部分在最后4行。

#!/usr/bin/env python
# Enter your code for "What's In (The Length Of) A Name?" here.
name1 = input("Enter name 1: ")
name2 = input("Enter name 2: ")
len(name1)
len(name2)
if len(name1) == len(name2):
    if name1 == name2:
        print ("The names are the same")
    else:
        print ("The names are different, but are the same length")
    if len(name1) > len(name2):
        print ("'{0}' is longer than '{1}'"% name1, name2)
    elif len(name1) < len(name2):
        print ("'{0}'is longer than '{1}'"% name2, name1)

运行此代码时,它会显示:

Traceback (most recent call last):
  File "program.py", line 13, in <module>
    print ("'{0}' is longer than '{1}'"% name1, name2)
TypeError: not all arguments converted during string formatting

非常感谢您的任何建议。

共有3个答案

宋正真
2023-03-14

对我来说,这个错误是在我试图将元组传递到字符串格式方法时引起的。

我从这个问题/答案中找到了解决办法

复制并粘贴链接中的正确答案(不是我的作品):

>>> thetuple = (1, 2, 3)
>>> print "this is a tuple: %s" % (thetuple,)
this is a tuple: (1, 2, 3)

将感兴趣的元组作为唯一项,即(元组)部分,创建一个单元组是这里的关键点。

钦宏义
2023-03-14

字符串格式错误。

使用'%'运算符使用传统字符串格式的正确方法是使用printf样式的格式字符串(Python为此留档:http://docs.python.org/2/library/string.html#format-string-syntax):

"'%s' is longer than '%s'" % (name1, name2)

但是,将来可能会弃用“%”运算符。新的政治公众人物3101做事方式如下:

"'{0}' is longer than '{1}'".format(name1, name2)
司徒炎彬
2023-03-14

您正在混合不同的格式函数。

旧式格式使用代码进行格式化:

'It will cost $%d dollars.' % 95

新样式的{}格式使用{}代码和. form方法

'It will cost ${0} dollars.'.format(95)

请注意,对于旧式格式,必须使用元组指定多个参数:

'%d days and %d nights' % (40, 40)

在您的情况下,因为您使用的是格式说明符,所以请使用。格式:

"'{0}' is longer than '{1}'".format(name1, name2)
 类似资料:
  • 问题内容: 我通过psycopg2有一个简单的数据库查询,但是我不知道为什么它总是在这里显示错误 然后它将显示 TypeError:并非在字符串格式化期间转换了所有参数 如果我以这种方式尝试 它仍然无法正常工作 我如何以正确的方式将参数传递给psycopg2。请帮助我! 问题答案: 您传递给的sql参数必须位于一个元组或列表中,即使只有一个。在文档中对此进行了说明: 对于位置变量绑定,即使第二个参

  • 问题内容: 这是输出。我相信这些是utf-8字符串…其中一些可以是NoneType,但在类似这样的字符串之前会立即失败… TypeError:格式字符串的参数不足 虽然是7比7? 问题答案: 请注意,格式化字符串的语法已过时。如果您的Python版本支持它,则应编写: 这也可以修复您碰巧遇到的错误。

  • 我在一个名为train的数据帧中有一个类型为string(object)的列I_DATE,如下所示。 如何将I_日期从字符串转换为数据时间格式 另外,如何根据熊猫中的日期范围筛选行?

  • 问题内容: 我正在尝试将字符串“ 20091229050936”转换为“ 2009年12月29日(UTC)05:09” 给 显然,我犯了一个错误:时间是错误的,它是日期时间对象!它有一个日期 和 一个时间部分! 给 我如何将字符串转换为格式化的日期字符串? 问题答案: 返回一个; 接受作为可选参数: 给

  • 问题内容: 我想要这种格式 问题答案: 您需要先 解析 日期字符串(使用方法),才能 使用与格式匹配的格式获取对象。 然后使用所需的格式来 格式化 Date对象(Use 方法)以获取字符串。 输出:- 第一种格式是RFC 822 TimeZone与您的日期字符串匹配。有关在日期格式中使用的其他各种选项,请参见。

  • 问题内容: 我有包含日期​​字符串的数据。 通常情况下,它会出现在“ Jan”中。1966年第3版的字型格式,但由于国际上的差异,不一定总是那样。 我需要读取数据并将其转换为标准日期字符串(’YYYY-MM-DD’)。 基本上这就是我到目前为止所拥有的: 问题答案: Xcode 9•Swift 4 或 Xcode 8.3.2•Swift 3.1 您可以按以下方式使用NSDataDetector: