python学习过程中遇到不懂的函数怎么办?
问题
今天在学些Python字符串的过程中,看到了一个字符串方法translate,不知道具体的用法,但是我看书大概知道这个方法的作用类似于replace方法,主要是替换字符串中的字符。于是我做了以下尝试,但是报错:
>>> my_str = ' Learning Python '
>>> my_str.translate('n', 'm')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: str.translate() takes exactly one argument (2 given)
解决
有问题当然要解决,不然学习就会中断。
关于解决问题的方法,我认为最直接简单的就是直接百度,因为99%以上的问题都可以通过关键字搜索在网上找到答案;其二我们可以选择向比我们厉害的人请教,比如说同事、专业大牛等,但是需要注意的是请教别人的时候一定要把问题描述清楚,尽可能的降低沟通成本;其三就是我们通过自己的经验去解决了,有那么一种人很享受解决问题的过程及问题被解决之后的成就感。
这里我就简单的说一下我解决这个问题的过程,是上面说的第三种方式。
一、看方法的描述
因为我写Python所用的IDLE是VSCode,这个工具有一个很便利特点就是将鼠标悬停在函数上就会展示这个函数的描述:
从上面橙色的字体我们可以知道,这是一个方法,需要传入一个TranslateTable类型的参数,它的返回值是一个string。
下面的解释文字进一步说明了这个函数的功能是通过给定的参数转换表来依次替换字符串中的字符。而转换列表是一个字符串或者空的码点对码点的映射(类似于列表)。
在接下来的一段意思是转换表必须通过字典或列表进行查找/索引以及异常处理等信息。
看到没有,虽然我们不用每天说英语,但是必须有基本的英文阅读能力,否则看到类似的描述就像个白痴一样。
所以还等什么呢,英语不好的测试赶紧补起来吧!
或者期望哪一天汉语可以统治直接,那样就真的可以实现“全世界都在说中国话”了。
因为我目前只用过这一个代码工具,所以比较熟悉,其他的例如PyCharm是否有类似的函数提示功能,我就不知道了。
另外,上面的这段描述文字是来自于哪里,我一直没找到,知道的大神可以在评论区留言,万分感谢。
二、看别人实际使用的例子
这又是我要吹爆VSCode的另一个功能,在上面的截图最下方有一行 See Real World Examples From GitHub
可以直达GitHub上的代码实例。
这一部分基本上能看到这个方法的所有实例,可以自己手动敲一敲加深理解记忆。
右边我圈起来的部分,还有这个方法再传入不同个参数下的具体使用方法,我也是我今天偶然发现的,很有用。
三、看方法调用栈
这个方法很简单,就是一步步点击函数看到最终的调用,我看开发写代码就是这样。这个同样要求具有很好的代码阅读能力,不然越看下去就会越迷糊。
目前我还不能通过这种发放了解到一个函数的具体用法和功能。
读代码的能力还在加强中。
结果
通过以上的方法步骤,我们知道了这个函数的具体用法。
需要先生成一个table,还可以指定需要删除的字符,然后通过table里面的码点映射来依次替换目标字符串中的字符。
>>>
>>> my_str = ' Learning Python '
>>> table = str.maketrans('n', 'm')
>>> my_str.translate(table)
' Learmimg Pythom '
>>>
在说明以下,translate方法可以替换字符串中的每一个字符,而方法repalce只能替换收尾字符。
总结
学习就是一个不断遇到问题解决问题,然后又遇到问题解决问题的重复过程,通过这一次次的训练,我们的技能才会螺旋式的上升。其实人生也是遮掩一个过程,总会有不断地问题出现。
但是我们再解决问题的过程中需要有一些基本的技巧,比如说搜索能力、思考能力、总结能力等,都是不可或缺的。