【问题标题】:Python 3.3: separation argument (sep) giving an errorPython 3.3:分隔参数 (sep) 给出错误
【发布时间】:2013-05-19 13:37:09
【问题描述】:

我对编程非常陌生,我刚开始使用 Python。我试图在这里查找我的问题,但没有真正找到任何东西。

我正在尝试使用一个非常简单的打印命令,但由于某种我不明白的原因而出现错误。

last = 'smith'
middle = 'paul'
first = 'john'
print(first.capitalize(), middle.capitalize(), last.capitalize(), sep='\t')

根据书中的答案,这应该是对的,但是每次我尝试运行它时,我都会收到'sep'的错误:

print(first.capitalize(), middle.capitalize(), last.capitalize(), sep='\t')
                                                                     ^
SyntaxError: invalid syntax

谁能告诉我我做错了什么。值得我使用 PyScripter。

[编辑]

谢谢你。我发现我使用的是 Python 2.7.3 而不是 3.3。所以我查阅了手册,看看分离器是如何工作的。在我看来,唯一的区别在于方括号。该手册将打印功能描述为:

print([object, ...][, sep=' '][, end='\n'][, file=sys.stdout]) 

所以我更改了打印命令并添加了方括号:

print ([first.capitalize(),middle.capitalize(),last.capitalize()] [, sep='\t'])

但不幸的是,这也不起作用,因为我收到一个错误,突出显示 sep='\t' 周围的方括号。即使我去掉括号,错误也不会消失。

我不确定我做错了什么,看起来应该很简单。

【问题讨论】:

    标签: python separator python-3.3


    【解决方案1】:

    您实际上并没有使用 Python 3,您只是认为自己在使用。试试:

    import sys
    print(sys.version)
    

    看看结果如何。 Python 2 print ... 语句(不是 Python 3 中的 print(...) 函数)将其解释为

    print (first.capitalize(), middle.capitalize(), last.capitalize(), sep='\t')
    

    它试图打印一个带有关键字参数的元组,因此sep上的语法错误

    【讨论】:

    • 顺便说一下,对于初学者来说,Python 3 比 Python 2 更好。所以在你的两个选择中——学习使用 Python 2,或者弄清楚你为什么没有真正运行Python 3,然后让它真正运行 Python 3——我肯定会推荐后者。 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    相关资源
    最近更新 更多