九月=' - '完美运行后返回无效语法

时间:2014-09-28 08:28:55

标签: python syntax

大家好,我是编程新手,但我很快就把它拿起来了。在我的课堂上,我们需要在同一个文件中创建不同的程序。有问题的错误出现在已完成的程序中但是当我完成作业时,我去测试整个事情,这突然出现了。这是代码:

def make_string_sandwich(string1, string2):
''' ????
Parameters:
    string1 - outside string
    string2 - inside string
Variables:
    <string_sandwich - line of strings in the order string1-string2-string1>
'''
string_sandwich = (string1, string2, string1, sep='-')
return string_sandwich

assertEqual(make_string_sandwich('bbb','a'), 'bbb-a-bbb')

错误是行中的=:

string_sandwich = (string1, string2, string1, sep='-')

在我完成代码编写并继续前进之后,我从未触及它,但突然间发生了这种情况。如果我删除了sep =&#39; - &#39; assertEqual示例的输出是:

('bbb', 'a', 'bbb')

我使用sep =功能的其他程序仍然可以正常运行。我评论了文档中的所有其他内容,以隔离此程序,以确保它未来的代码与之相关,但这并不起作用。我想到的唯一其他方式是:

string_sandwich = (string1, string2, string1), sep='-'
string_sandwich = ((string1, string2, string1), sep='-')

但这些都不起作用(不是我认为的那样)。我能找到的唯一相关线程的解决方案是python使用的是版本2而不是3并且提供了检查版本的方法。当我这样做时,输出是:

3.3.5 (v3.3.5:62cf4e77f785, Mar  9 2014, 10:37:12) [MSC v.1600 32 bit (Intel)]

所以我知道我使用的是最新版本的python。我以为我完成了这项任务,现在这种情况正在发生,而且明天将到期。请帮我!!我非常感谢能解决这个问题的所有帮助。

2 个答案:

答案 0 :(得分:2)

sepprint函数的参数。要做你想做的事,你必须使用join函数:

return '-'.join((string1, string2, string1))

答案 1 :(得分:0)

使用str.format

def make_string_sandwich(string1, string2):
    ''' ????
    Parameters:
        string1 - outside string
        string2 - inside string
    Variables:
        <string_sandwich - line of strings in the order string1-string2-string1>
    '''
    string_sandwich = (string1, string2, string1)
    return "{}-{}-{}".format(*string_sandwich)

如果您想使用sep,则必须print输出:

def make_string_sandwich(string1, string2):
    ''' ????
    Parameters:
        string1 - outside string
        string2 - inside string
    Variables:
        <string_sandwich - line of strings in the order string1-string2-string1>
    '''
    print(string1, string2, string1,sep="-")