[python入门思考]为什么要学习python以及常见坑点
其实学习任何一门语言,都可以。重要的是解决问题的思路。
学习语言无非就是了解运算符是怎样的。也就是这个工具是如何处理你要的运算的,比如数学运算,列表运算,字典运算,面向对象等等。
最关键的其实不是工具,是工具背后你对一个问题的理解。
比如什么是AES加密?什么是RSA加密?
但对一些简单的问题,我们的确也要训练。比如一个字符串如何逆序?一个列表如何逆序?
备注:
20220916
1、python3和2的区别快速鉴别
在刚开始学习的时候,要避免一些常见的坑。因为python流行是python2的时候,所以你现在看到的代码很可能是python2的,所以怎么也跑不起来。简单点区分的办法是,看一下print语句,如果是print a+b,没有括号,就是python2,如果是print(a+b),就是python3.
2、方法和函数的区别
方法是面向对象的,一定要有对象,才会有方法。
比如
a='abc' b=list(a) b.reverse() #这里并不需要赋值,b=b.reverse(),因为reverse()方法就会对b进行reverse b="".join(b) print(b)
3、列表使用sorted和.sort的区别
使用sorted不改变原来的列表,但是sort会改变。结合上面的,方法会让原有的对象作出实质性的改变。就好比按一下喇叭,喇叭就会响了。
a="cba" c=list(a) >>> sorted(c) ['a', 'b', 'c'] >>> c ['c', 'b', 'a'] >>> c.sort() >>> c ['a', 'b', 'c']
4、移位练习
将一个字符串左移一位。也就是xyz变为wxy该如何做?
s = str(input()) n = int(input()) print(s[n:]+s[0:n])
转自https://blog.csdn.net/plastic_/article/details/103405944
5、数组相加
numpy
import numpy as np x = np.array( [[12,7,3], [4 ,5,6], [7 ,8,9]]) y = np.array( [[5,8,1], [6,7,3], [4,5,9]]) z = x+y print(z)
6、刨根问底,为什么Python有列表还要元组
元组的创建效率比列表高一个数量级
划重点:
- 列表中存放同类数据
- 元组中存放异类数据
https://blog.csdn.net/taotao100595/article/details/116834423
7.字符串处理函数
7.1maketrans()实现字符串的替换
https://www.runoob.com/python3/python3-string-maketrans.html
(注:Python3.4 已经没有 string.maketrans() 了,取而代之的是内建函数: bytearray.maketrans()、bytes.maketrans()、str.maketrans() 。)
>>> table=str.maketrans('cs','kz') #用k替换c,用z替换s >>> 'this is an incredible test'.translate(table) 'thiz iz an inkredible tezt'
我就用他来做了一个ROT13
>>> table2=str.maketrans('abcdefghijklmnopqrstuvwxyz','nopqrstuvwxyzabcdefghijklm') >>> 'this is an incredible test'.translate(table2) 'guvf vf na vaperqvoyr grfg'
做完后,我在cyberchef里面进行了验证。
https://cyberchef.org/#recipe=ROT13(true,false,false,13)&input=dGhpcyBpcyBhbiBpbmNyZWRpYmxlIHRlc3Q
这个厨子还有本地版本可以使用。
7.2用chr和ord实现ascii和文本的转换
https://www.cnblogs.com/rick52o/p/7206890.html
8.字典的拷贝,浅拷贝,深拷贝
https://blog.csdn.net/LeonTom/article/details/82761319