我正在给一年级的数学学生讲授“计算机编程入门”课程。必须假定这是学生第一次接触计算机编程。以下是我教学的主要目标:
我的教学方法是为每一个新引入的概念提供一系列的问题和挑逗,以激励学生。例如,当引入字符串和列表时,自然的问题是字符串或列表反转的任务。如果我要求学生编写一个代码来检查字符串是否是回文,那么我最好告诉他们如何反转它。
对于列表,一个自然的解决方案myString.reverse()至少有两个缺点:
真正的问题是:如何在Python中引入逆转字符串的问题?
发布于 2010-03-13 17:22:09
你可以先教他们关于步幅表示法(::),然后切片并应用这两种方法。
s = 'string'
s = s[::-1]
print s # gnirts参考资料和更多信息:
对于您的评论,您可以提供任何一个参数。
>>> s[len(s):None:-1]
'gnirts'
>>> s[5:None:-1]
'gnirts'
>>> s[::-1] # and of course
'gnirts'发布于 2010-03-13 17:21:19
最明显的两种方法是:
''.join(reversed(s))和
s[::-1]对于一个编程新手来说,我认为两者都是不平凡的,但是所涉及的概念并不是那么困难。
第二种方法更容易理解,如果您首先向他们展示s[::3]、s[::2]和s[::1]的结果。那么s[::-1]就会自然而然地出现:)
发布于 2010-03-13 18:01:28
问他们一个这样的谜语:
为什么
>>> 'dammitimmad'[::-1] == 'dammitimmad'
True但
>>> 'dammit im mad'[::-1] == 'dammit im mad'
Falsehttps://stackoverflow.com/questions/2439216
复制相似问题