python学习笔记1——(廖雪峰教程,菜鸟教程)python基础
python学习笔记1——(廖雪峰教程,菜鸟教程)
>>> classmates =['Michael','Bob','Tracy']
>>>len(classmates)
3
⽤索引来访问list中每⼀个位置的元素,记得索引是从0开始的:
>>> classmates[0]
来访问最后⼀个元素
```c
classmates[-1]
list是⼀个可变的有序表,所以,可以往list中追加元素到末尾:
```c
>> classmates.append('Adam')
也可以把元素插⼊到指定的位置,⽐如索引号为1的位置:
>>> classmates.insert(1,'Jack')
要删除list末尾的元素,⽤pop()⽅法:
>>> classmates.pop()
要删除指定位置的元素,⽤pop(i)⽅法,其中i是索引位置:
>>> classmates.pop(1)
2.Tuple
另⼀种有序列表叫元组:tuple。tuple和list⾮常类似,但是tuple⼀旦初始化就不能修改,⽐如同样是列出同学的名字:
>>> classmates =('Michael','Bob','Tracy')
现在,classmates这个tuple不能变了,(指向不变)它也没有append(),insert()这样的⽅法。其他获取元素的⽅法和list是⼀样的,你可以正常地使⽤classmates[0],classmates[-1],但不能赋值成另外的元素。
最后来看⼀个“可变的”tuple:
>>> t =('a','b',['A','B'])
>>> t[2][0]='X'
>>> t[2][1]='Y'
>>> t
('a','b',['X','Y'])
tuple的元素确实变了,但其实变的不是tuple的元素,⽽是list的元素。tuple⼀开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向’a’,就不能改成指向’b’,指向⼀个list,就不能改成指向其他对象,但指向的这个list本⾝是可变的!
3 . input()
input()返回的数据类型是str,str不能直接和整数⽐较,必须先把str转换成整数。
s =input('birth: ')
birth =int(s)
4.if语句
if<;条件判断1>:
<;执⾏1>
elif <;条件判断2>:
<;执⾏2>
elif <;条件判断3>:
<;执⾏3>
else:
<;执⾏4>
5.循环
第⼀种:利⽤for in 来遍历列表或者元组
names =['Michael','Bob','Tracy']
for name in names:
print(name)
遍历⼀串数字:
for x in [1,2,3,4,5,6,7,8,9,10]:
for x in range(101):
第⼆种循环是while循环,只要条件满⾜,就不断循环,条件不满⾜时退出循环。
6.Dict(键值对)
如果想让每个⼈的名字和成绩,使⽤列表可以使⽤以下⽅式:
>>> names=['michael','Bob','Tracy']
>>> scores =[95,75,85]
>>> scores[names.index('Tracy')]
85
cores是列表类型,写完scores.会出来列表的功能,其中index表⽰查某个元素的序号,如果⽤字典表⽰:
>>> d ={'Michael':95,'Bob':75,'Tracy':85}
>>> d['Michael']
95
放⼊数据:>>> d['Adam'] = 67
查是否有数据:>>> ('Tomas')) None
(注意这⾥直接写d.get(‘Tomas’)不会输出,因为d.get(‘Tomas’)输出的格式为NONETYPE)
删除key:>>> d.pop('Bob') 75
添加key:
>>> d={'Michael':95,'Bob':75,'Trancy':85,'Tomas':77}
>>> d['Kiko']="45"
>>> d
{'Michael':95,'Bob':75,'Trancy':85,'Tomas':77,'Kiko':'45'}
访问key:>>> d[‘Kiko’] ‘45’
清空dict:d.clear()
打印所有值:print (“字典值 : %s” % dict.items())
遍历字典列表
for key,values in dict.items():
print key,values
dict可以⽤在需要⾼速查的很多地⽅,在Python代码中⼏乎⽆处不在,需要牢记的第⼀条就是dict的key必须是不可变对象(例如字符串,整数,元组),值可以是列表,数字,字符串,元组等。
这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。
7.SET
set和dict类似,也是⼀组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
要创建⼀个set,需要提供⼀个list作为输⼊集合:
>>> s =set([1,2,3])
>>> s
{1,2,3}
廖雪峰python注意,传⼊的参数[1, 2, 3]是⼀个list,⽽显⽰的{1, 2, 3}只是告诉你这个set内部有1,2,3这3个元素,显⽰的顺序也不表⽰set是有序的。。
重复元素在set中⾃动被过滤
添加元素:s.add(4),
删除元素: s.remove(4)
交集:s1&s2
并集:s1|s2
建⽴⼀个空的集合:
如果⽤s={}建⽴的是⼀个字典,⽽是使⽤s=set{}
8. 不可变对象
>>> a ='abc'
>>> a.replace('a','A')
'Abc'
>>> a
'abc'
虽然字符串有个replace()⽅法,也确实变出了’Abc’,但变量a最后仍是’abc’,应该怎么理解呢?
我们先把代码改成下⾯这样:
>>> a ='abc'
>>> b = a.replace('a','A')
>>> b
'Abc'
>>> a
'abc'
要始终牢记的是,a是变量,⽽’abc’才是字符串对象!有些时候,我们经常说,对象a的内容是’abc’,但其实是指,a本⾝是⼀个变量,它指向的对象的内容才是’abc’:
当我们调⽤a.replace(‘a’, ‘A’)时,实际上调⽤⽅法replace是作⽤在字符串对象’abc’上的,⽽这个⽅法虽然名字叫replace,但却没有改变字符串’abc’的内容。相反,replace⽅法创建了⼀个新字符串’Abc’并返回,如果我们⽤变量b指向该新字符串,就容易理解了,变量a仍指向原有的字符串’abc’,但变量b却指向新字符串’Abc’了:
┌───┐ ┌───────┐
│ a │──────────>│ ‘abc’ │
└───┘ └───────┘
┌───┐ ┌───────┐
│ b │─────────>│ ‘Abc’ │
└───┘ └───────┘
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论