如何教在Python中反转字符串的初学者?

我正在给一年级数学学生授课“计算机程序设计入门”课程。 人们不得不假设这是学生第一次接触计算机编程。 这是我教学的主要目标:

  • 学生应该学习和理解Python的基础知识。
  • 最终,他们需要掌握足够多的Python工具,以便他们能够为给定问题选择正确的工具。
  • 同时,他们必须学习计算机编程解决问题的基本技能。
  • 我的教学方法是为每个新引入的概念提供一系列激励学生的问题和挑逗。 例如,当引入字符串和列表时,自然问题是字符串或列表反转的任务。 如果我要求学生编写一个代码来检查一个字符串是否是回文,那么我最好告诉他们如何反转它。

    对于列表,一个自然的解决方案myString.reverse()至少有两个缺点:

  • 它不会传递给字符串。
  • 除非先告知方法,否则学生会认为它是一种魔法。
  • 真正的问题是:应该如何介绍在Python中反转字符串的问题?


    你可以先教他们关于步幅符号( :: :),然后切片并应用两者。

    s = 'string'
    s = s[::-1]
    print s  # gnirts
    

    参考资料和更多信息:

  • 延长的切片
  • Python的非正式介绍
  • Python字符串反向解释
  • 回应你的评论,你可以提供任何参数。

    >>> 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

    上一篇: How to teach beginners reversing a string in Python?

    下一篇: Nicest way to pad zeroes to string