大家好,我是编程新手,但我很快就把它拿起来了。在我的课堂上,我们需要在同一个文件中创建不同的程序。有问题的错误出现在已完成的程序中但是当我完成作业时,我去测试整个事情,这突然出现了。这是代码:
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。我以为我完成了这项任务,现在这种情况正在发生,而且明天将到期。请帮我!!我非常感谢能解决这个问题的所有帮助。
答案 0 :(得分:2)
sep
是print
函数的参数。要做你想做的事,你必须使用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="-")