深复制和浅复制
昨天遇到这个问题以后,刚开始想的是和c++里的深拷贝和浅拷贝差不多。后来发现python和c++还是有很大的区别的,在python中序列复制以后,所有元素的地址是一样的
可以通过系统内置的函数id(对象名[索引值])只用于有序序列
进行查看。
在序列中没有序列元素的时候,深复制和浅复制基本没有区别,但是当序列中也含有序列元素的时候,浅复制出的对象如果其原对象的序列元素里的元素发生改变的时候,其值也会相应的改变。深复制就不会个人觉得,就这点区别吧。
更深的原因,以后学深了再了解吧。
字符串
之前有老师对我说过,学习一种语言,最重要的就是看其对字符串的操作。再python中字符串属于一种不可变的对象
字符串的基本操作
1,字符串的创建: book = ‘书’。
2,字符串的访问:book[1]
3,字符串的格式化输出。book = ‘今天上了%d小时的课程’%(8)
4,将其他类型强制转换为字符串:str()转出来的字符串非常奇怪,通常不建议使用
字符串常用的类方法
1,将其他序列转化为字符串:’’.join()转换的序列里的元素必须为字符串否则会报错,并且每个元素会使用.之前的字符串进行分割,不填就挨到一起。
2,返回指定字符出现的次数:count()
3,返回指定字符串出现的第一次的索引:index()默认从左开始如需要从右边开始则使用rindex()
4,find(str,beg=0,end = len(string)):返回str在string中的beg到end中第一次出现的索引的位置。
5,replace(old,new,max):用new替换old的值,最多替换max次,如果第三个参数不填则默认全部替换。
6,strip():删除给定的字符,rstrip(),lstrip()则为删除一边。
7,split(’ '):以参数来对字符串进行截取,返回值为:一个列表。
8,swcpcase():大小写的相互转换。
9,lower():全部转换为小写。
10,upper():全部转换为大写。
11,isalpha():是否全为字母。常用于字符串中找字母 12,isdight():是否全为数字。常用于来寻找数字
贴一个字符串中寻找数字的代码吧:
运行后的结果为:
和c和c++比起来确实简单多了。
函数
由于我也是python的初学者,我也不知道python更深层次的东西,就把今天学习到的函数的知识进行一下总结吧。
函数的定义方式
在python中函数的定义方式为:def 函数名(参数1,参数2,…)
函数体
return 返回值
简单贴一个给定数判断是不是素数的代码吧,今天也就学了这么点。
运行后的结果为: