首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >TypeError:在设置字符串格式的过程中并非所有参数都已转换

TypeError:在设置字符串格式的过程中并非所有参数都已转换
EN

Stack Overflow用户
提问于 2013-08-05 16:15:57
回答 8查看 703.8K关注 0票数 237

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

代码语言:javascript
复制
#!/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)

当我运行此代码时,它显示:

代码语言:javascript
复制
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

我们非常感谢您的任何建议。

EN

回答 8

Stack Overflow用户

发布于 2013-08-05 16:19:49

你混合了不同的格式函数。

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

代码语言:javascript
复制
'It will cost $%d dollars.' % 95

新型{}格式使用{}代码和.format方法

代码语言:javascript
复制
'It will cost ${0} dollars.'.format(95)

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

代码语言:javascript
复制
'%d days and %d nights' % (40, 40)

在您的示例中,由于您使用的是{}格式说明符,因此请使用.format

代码语言:javascript
复制
"'{0}' is longer than '{1}'".format(name1, name2)
票数 250
EN

Stack Overflow用户

发布于 2013-08-05 16:31:19

错误在您的字符串格式中。

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

代码语言:javascript
复制
"'%s' is longer than '%s'" % (name1, name2)

但是,'%‘运算符will probably be deprecated in the future。新的PEP 3101工作方式是这样的:

代码语言:javascript
复制
"'{0}' is longer than '{1}'".format(name1, name2)
票数 57
EN

Stack Overflow用户

发布于 2017-10-10 15:43:29

在我的例子中,这是因为我只需要一个%s,所以我缺少值输入。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18053500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档