首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何教初学者用Python逆转字符串?

如何教初学者用Python逆转字符串?
EN

Stack Overflow用户
提问于 2010-03-13 17:17:57
回答 6查看 2.3K关注 0票数 4

我正在给一年级的数学学生讲授“计算机编程入门”课程。必须假定这是学生第一次接触计算机编程。以下是我教学的主要目标:

  • 学生应该学习和理解Python的基础知识。
  • 最终,他们需要掌握足够多的Python工具,以便能够为给定的问题选择合适的工具。
  • 同时,他们还必须通过计算机编程学习解决问题的基本技能。

我的教学方法是为每一个新引入的概念提供一系列的问题和挑逗,以激励学生。例如,当引入字符串和列表时,自然的问题是字符串或列表反转的任务。如果我要求学生编写一个代码来检查字符串是否是回文,那么我最好告诉他们如何反转它。

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

  1. 它不会转到字符串上。
  2. 除非先告诉学生方法,否则学生们就会看到它的魔力。

真正的问题是:如何在Python中引入逆转字符串的问题?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-03-13 17:22:09

你可以先教他们关于步幅表示法(::),然后切片并应用这两种方法。

代码语言:javascript
复制
s = 'string'
s = s[::-1]
print s  # gnirts

参考资料和更多信息:

  • 扩展切片
  • Python非正式介绍
  • Python字符串反向解释

对于您的评论,您可以提供任何一个参数。

代码语言:javascript
复制
>>> s[len(s):None:-1]  
'gnirts'
>>> s[5:None:-1]  
'gnirts'
>>> s[::-1]  # and of course
'gnirts'
票数 7
EN

Stack Overflow用户

发布于 2010-03-13 17:21:19

最明显的两种方法是:

代码语言:javascript
复制
''.join(reversed(s))

代码语言:javascript
复制
s[::-1]

对于一个编程新手来说,我认为两者都是不平凡的,但是所涉及的概念并不是那么困难。

第二种方法更容易理解,如果您首先向他们展示s[::3]s[::2]s[::1]的结果。那么s[::-1]就会自然而然地出现:)

票数 4
EN

Stack Overflow用户

发布于 2010-03-13 18:01:28

问他们一个这样的谜语:

为什么

代码语言:javascript
复制
>>> 'dammitimmad'[::-1] == 'dammitimmad'
True

代码语言:javascript
复制
>>> 'dammit im mad'[::-1] == 'dammit im mad'
False
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2439216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档