如何教在Python中反转字符串的初学者?
我正在给一年级数学学生授课“计算机程序设计入门”课程。 人们不得不假设这是学生第一次接触计算机编程。 这是我教学的主要目标:
我的教学方法是为每个新引入的概念提供一系列激励学生的问题和挑逗。 例如,当引入字符串和列表时,自然问题是字符串或列表反转的任务。 如果我要求学生编写一个代码来检查一个字符串是否是回文,那么我最好告诉他们如何反转它。
对于列表,一个自然的解决方案myString.reverse()
至少有两个缺点:
真正的问题是:应该如何介绍在Python中反转字符串的问题?
你可以先教他们关于步幅符号( ::
:),然后切片并应用两者。
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'
两种明显的方法是:
''.join(reversed(s))
和
s[::-1]
我认为这对编程新手来说都不是微不足道的,但涉及的概念并不是那么困难。
第二种方法更容易理解,如果你首先向他们展示s[::3]
, s[::2]
和s[::1]
是什么。 然后s[::-1]
会自然而然:)
只要问他们这样一个谜语:
为什么
>>> 'dammitimmad'[::-1] == 'dammitimmad'
True
但
>>> 'dammit im mad'[::-1] == 'dammit im mad'
False
?
链接地址: http://www.djcxy.com/p/54299.html