【发布时间】:2014-04-11 07:31:30
【问题描述】:
所以我正在研究麻省理工学院开放课件的问题集 4。我尝试参考他们的解决方案,但由于某种原因它不存在。他们发布了错误的答案。所以,这是我的问题。
它应该做什么的描述是这样的:“这个函数接受一个字符串文本和一个元组移位列表。移位中的元组表示移位的位置,以及移位本身。例如( 0,2) 表示移位开始于字符串中的位置 0,并且是 2 的凯撒移位。此外,移位是分层的。这意味着一组移位 [(0,2), (5, 3)]将首先对整个字符串应用 2 的凯撒位移,然后从字符串中的第 6 个字母开始应用 3 的凯撒位移"
这就是我写的:
def apply_shifts(text, shifts):
encryptedText = text
for t in shifts:
encryptedText = apply_shift(encryptedText[t[0]:len(encryptedText)], t[1])
print encryptedText
return encryptedText
所以,我知道我是在告诉它每次遍历循环时替换我引用的变量。我只是不知道如何设置它,所以我没有这个问题。这是我的测试:
print apply_shifts("Do Androids Dream of Electric Sheep?", [(0,6), (3, 18), (12, 16)])
print 'JufYkaolfapxQdrnzmasmRyrpfdvpmEurrb?'
第一个打印语句是我的测试,第二个是输出应该是什么。有什么想法吗?
【问题讨论】:
-
apply_shift 函数将 (text, shift) 作为参数。它使用我编写的另一段代码来执行实际的班次。没有问题。
-
嗯...也许我遗漏了什么,但我看不出你在哪里描述了你的问题
标签: python