【问题标题】:Invalid syntax for % operator in python2.7python2.7中%运算符的语法无效
【发布时间】:2013-03-06 15:41:06
【问题描述】:

我是 Python 的新手,我一直在使用 Python 2.7 来学习这门语言。但是当我使用 % 运算符进行字符串格式化时,我的 python 返回了无效的语法。

为什么会返回这样的错误,解决方法是什么?

代码:

# Filename: print_tuple.py

age = 22
name = 'Deepak'

print '%s is %d years old' % (name, age)
print 'Why is %s?' % name

【问题讨论】:

  • 你能发布一些你尝试使用%的示例代码吗?
  • 是的,请将代码贴在你使用它的地方,以防它看起来正确,发布堆栈跟踪
  • # 文件名:print_tuple.py age = 22 name = 'Deepak' print '%s 已经 %d 岁了' % (name, age) print '为什么是 %s? % 名称
  • @DeepakEshwar -- 请编辑您的问题,包括完整的追溯
  • 我已经编辑了问题以包含代码,但它对我来说效果很好。你能分享你的异常的完整回溯吗?请将其编辑到问题中,因为它将分布在多行中。

标签: python python-2.7


【解决方案1】:

我的建议是使用format 方法,这样可以消除对% 的部分误解。例如:

myStr = '{0} int and {1} string and {2} list...'
mystr.format(10, 'string value', range(10)

如果您仍然需要使用 % 表示法,请仔细阅读以下链接: http://docs.python.org/2/library/stdtypes.html#string-formatting-operations

认为您只是使用了错误的转换。

根据您的示例:

def print_data(age, name):
    print '{0} is {1} years old'.format(name, age) 
    print 'Who is {0}?'.format(name)

print_data(22, 'Depak')

【讨论】:

  • # Filename: print_tuple.py age = 22 name = 'Deepak' print '%s 已经 %d 岁了' % (name, age) print '谁是 %s? % 名称
  • 以上是程序,但是当我使用 cmd 运行它时,它返回为 % 是无效语法。
  • Oki,但是使用 print 和 print 语句使用元组的格式方法标准吗?
  • @DeepakEshwar 格式是新建议的字符串格式化方法:“这种字符串格式化方法是 Python 3 中的新标准,应该优先于新代码中字符串格式化操作中描述的 % 格式化。 "来自python教程
  • @Aristom Rudzenka 是的,我尝试了更新的示例,它运行完美。
猜你喜欢
  • 2020-08-21
  • 2017-01-14
  • 2014-10-05
  • 1970-01-01
  • 1970-01-01
  • 2015-09-07
  • 2017-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多