活起来的用法:
使用input内置函数
注意python2中和python3中,input函数是不太一样的,python2中,input用户传入什么类型就是什么类型而python3中,不管传入什么类型,都会变成字符串,这和python2中的raw_input函数相同,并且在python3中不再有raw_input。
有了input,就可以和用户交互,可以让代码活起来,然而你是不是觉得好像没什么鸟用对不对,用处大了,后面大部分编程都会用到它。
python几大核心之——列表(list)
1.什么是列表
列表的特征是中括号,好比字符串的特征是引号一样
2.创建一个列表的两种方式:
创建列表其中一个方式,list(),这是一个工厂函数,和其他的内置函数不太相同,记住就行,后面元组,集合,不可变集合,字典都有自己的工厂函数
3.列表的方法:
dir(),内置函数,可以查看当前函数下所有的方法,此方法非常识理解的方法,后面在函数篇和模块篇会提到
带有下划线的方法具有特殊意义,以后再说。
所以常用的列表方法有:append,count,extend,index,insert,pop,remove,reverse,sort
append:添加列表元素,但每次只能添加一个对象
注意那句【每次只能添加一个对象】
count:计数用
extend:添加另一个列表进去,与被添加列表合并
index:返回列表内元素所在索引(下标)位置
注意索引是从0开始且从左到右计数,所以元素2在索引1位置,并不是常识认为的是元素2
insert:插入元素
insert内的第一个参数是索引,第二个是要插入的元素
pop:如果不添加索引参数,则删除末尾的元素并打印,如果添加索引参数,则删除对应的索引参数并打印:
remove:给定一个元素并将其删除
reverse: 将列表内的元素顺序颠倒排列
sort: 默认按照ASCII编码由小到大给列表排序
所以如果要从大到小排列可以先用sort,再用reverse翻转过来就行。
不过其实没这么麻烦,因为sort方法还有个参数,reverse,此reverse非上面那个,此reverse是sort内的一个参数,因为其参数等于False,即默认为假,所以从小到大。而如果将reverse等于True就可以直接从大到小了。用法和后面的sorted函数几乎一样,看下面补充内容的就行。
4.列表是可变对象,支持原处修改,什么叫支持原处修改,就是增删改其内阐述,内存空间对应的id不变:
5.可以用索引访问+更改:
6.列表分片slice(列表切片):一次性获取多个列表元素
[1:3],意思是从索引位置1开始索引位置3结束,但不包括索引在3的
切片内的参数是索引,切片后不会改变其对象,若要改变得重新赋值
假如我想 把整个列表切出来呢?
像这样,索引3就代表最后一个元素,但是切不出来啊,因为不包括它的,可以这样:
省略冒号后面的元素,就可以取出最后一个元素了。当然你会想,可以省略后面,可以省略前面吗?可以的:
那可不可以都省略呢?可以的:
都省略就把整个可切片或者叫取出来了,是不是觉得有点像把整个给拷贝出来了,是的,这算是一种拷贝,后面在讲到深拷贝,浅拷贝时会继续说
又有个问题了,我不想按照这样的方式取,我只想取其中的一些,比如我要取索引1,3,5的,或者0,2,4的怎么办?
按照索引0,2,4来取:
这个[::2]写法什么意思?,第一个冒号都知道,直接拷贝整个,第二个冒号后面的2是步进长度的意思,通俗的说就是,一般人都是每迈一步就是一步的距离,偏偏有人腿长的要跨两步远,跨两步来取,也就达到了取0,2,4的效果
当然取1,3,5也是可以的:
这个列表元素少了点,换个元素多的看下:
当然步长也是可以改变的,你可以三步一取,四步一取都可以的。
其实说到这,接着说一个特殊的函数——sorted函数
sorted和sort函数有点相似,但是sorted是内置函数,而sort只是列表里的一个方法,只能对列表使用
举例:
里面的reverse参数,默认是false,即表示默认从小到大排列,如果让它为True的效果:
注意的是,使用sorted函数,只是打印出结果,不会改变其对象:
如果希望改变,需要将sorted得到的结果赋值给变量:
sorted在后面会有很大的作用,以后再说。
那么既然都说到sorted,再说说reversed
reversed() #和list.reverse实现方式一样,让参数翻转排列
例:
reversed比sorted功能少很多
reversed用得倒很少,不过你得知道有这么个用法