标签:异常 结构 写法 不同类 name div each 序列 eve
容器
python中有4种容器,分别是列表(list)、元组(tuple)、字典(dict)、集合(set)。
1、列表
1 a = [1, 2, 3, 4] #初始化 2 b = [1] 3 c = [1] 4 d = b 5 e = [1, "Hello", c, False] #列表可以存储不同类型的元素 6 print(id(b) == id(c)) #False,地址不同 7 print(id(b) == id(d)) #True,地址相同 8 print(b == c) #True,内容相同 9 f = list("abcd") #利用list函数从任何可便利结构初始化 10 print(f) #[‘a‘, ‘b‘, ‘c‘, ‘d‘] 11 g = [0] * 3 + [5] * 2 #[0, 0, 0, 5, 5]
列表基本操作有访问、增加、删除、拼接、子序列、倒序等:
1 a = [1, 2, 3, 4] #初始化 2 a.pop() #移除列表最后一个值并返回 3 4 in a #判断4是否在a中 4 a.append(5) #在列表末尾添加元素5 5 a.index(2) #找到第一个2所在位置 6 a[2] #取下标 7 a += [4, 3 ,2] #末尾拼接 8 a.insert(1, 0) #在下标为1处插入元素0 9 a.remove(2) #移除第一个元素2 10 a.reverse() #倒序,返回值为0 11 a[3] = 9 #指定下标处赋值 12 b = a[2:5] #切片(slicing),取下标2到5之前打子序列 13 c = a[2:-2] #下标可以倒数,-1对应最后一个元素 14 d = a[2:] #取下标2开始到结尾的子序列 15 e = a[:5] 16 f = a[:] #取开头到最后整个子序列 17 a[2:-2] = [1, 2, 3] #赋值也可以按片段来 18 a.sort() #列表内排序 19 print(a)
列表有顺序,和顺序相关操作是最常见的:
1 import random 2 a = [1, 2, 5, 6, 7, 8] 3 print(a) 4 random.shuffle(a) #打乱顺序 5 print(a) 6 b = sorted(a) #排序 7 print(b) 8 c = sorted(a, reverse=True) #倒序 9 print(c)
2、元组
元组和列表最大区别在于不可变
1 a = (1, 2) #元组初始化 2 b = tuple([‘3‘, 4]) #可以从列表初始化 3 c = (5, ) #初始化只包含一个元素的元组要打逗号 4 d = (7) #不是元组 5 e = 9, 0, 9 #直接用多个逗号分隔的元素默认是tuple
3、字典
字典是“键-值”(key-value)映射结构,键无重复。一个键不能对应多个值,多个值可以对应一个键
1 a = {‘Tom‘: 8, ‘Jerry‘: 3} #初始化 2 print(a[‘Tom‘]) 3 b = dict(Tom=3, Jerry=8) #字符串作为键更方便的初始化方式 4 print(b[‘Tom‘]) 5 if ‘Jerry‘ in a: #判断‘Jerry’是否在键里 6 print(a[‘Jerry‘]) 7 print(a.get(‘Bob‘)) #None,通过get获得值,键不存在不会报异常 8 a[‘Bob‘] = 5 #新增键值对 9 a.values() #所有的值 10 a.pop(‘Tom‘) #移除键值对,返回值 11 a.keys() #所有的键
4、集合
集合是一种很有用的数学操作
1 a = set([1, 2, 3, 4]) #用列表初始化集合 2 b = {3, 4, 5, 6} #初始化集合 3 c = set([1, 1, 2, 2, 3, 3, 3, 3]) 4 print(c) #集合的去重效果 5 print(a | b) #求并集 6 print(a & b) #求交集 7 print(a - b) #求差集,属于a不属于b 8 print(a ^ b) #求对称差集
分支和循环
1、for循环
把每个元素拿出来遍历方式叫for-each风格
1 a = [‘a‘, ‘b‘, ‘c‘] 2 for x in a: #遍历列表 3 print(x) 4 for i in range(10): #遍历0到9 5 print(i) 6 b = {‘a‘:10, ‘b‘:11} 7 for key in b: #遍历字典 8 print(key) 9 print(b[key])
2、if和分支结构
1 cat = 2 2 if cat == 2: #if格式 3 food = ‘milk‘ 4 elif cat == 3: #else if格式 5 food = ‘steak‘ 6 else: #else格式 7 pass #pass是空语句,占位 8 #语法糖 9 x = 2 10 if -1 < x < 5: #等于if x > -1 and x < 5 11 print("yes") 12 if x in [1, 2]: #等于if x = 1 or x = 2 13 print("ok")
3、while循环
while是一种单纯基于条件的循环,本身没有遍历的意思
1 o = 0 2 while o < 100: 3 print("ok") 4 while True: 5 print("true")
函数
1 def greetings(x = ‘Good Morning!‘): #参数可以有默认值 2 print(x) #没有定义返回值返回None 3 greetings() 4 greetings(‘Good Afternoon!‘) 5 #x,y是固定参数,排最前;args是可变长的参数;kwargs是关键字参数,排最后 6 def foo(x, y, *args, **kwargs): 7 print(x, y) #输出1, 2 8 print(args) #输出3, 4, 5 9 print(kwargs) #输出‘b‘: ‘b‘, ‘a‘: 6 10 foo(1, 2, 3, 4, 5, a = 6, b = ‘b‘)
在python中,万物皆对象
1 def move_up(x): 2 x[1] += 1 3 def move_down(x): 4 x[1] -= 1 5 def move_left(x): 6 x[0] -= 1 7 def move_right(x): 8 x[0] += 1 9 actions = { 10 ‘up‘: move_up, 11 ‘down‘: move_down, 12 ‘left‘: move_left, 13 ‘right‘: move_right 14 } 15 position = [0, 0] 16 moves = [‘up‘, ‘up‘, ‘up‘, ‘right‘] 17 for x in moves: 18 actions[x](position) #把函数作为值取到,直接加括号就可以使用 19 print(position)
类
priviate和protected在python中没有明确限制,惯例是用单下画线开头的表示protected,双下画线开头表示priviate,但都可以直接访问。
1 class A: 2 """Class A""" #docstring,用于写类的描述 3 def __init__(self, x, name): 4 self.x = x #所有的成员变量都是self的,以self.开头 5 self._n = name #表示protect 6 def introduce(self): #表示public 7 print(self._n) 8 def __func(self): #表示priviate 9 return self.x * 10 10 11 a = A(5, ‘Bob‘) 12 print(A.__doc__) #通过".__doc__"访问docstring 13 a.introduce() #调用函数 14 print(a._n) #正常访问 15 b = a.__func #报错 16 print(a._A__func()) #仍然可以访问 17 18 class B(A): #继承的写法,将父类放入括号 19 def greeting(self): 20 print(‘How are you!‘) 21 22 b = B(15, ‘Mary‘) 23 b.greeting() #调用自身的函数 24 b.introduce() #调用父类的函数 25 print(b._A__func()) #“私有方法”
其他
pycharm导入python包:https://blog.csdn.net/Joyce_heart/article/details/78931712
标签:异常 结构 写法 不同类 name div each 序列 eve
原文地址:https://www.cnblogs.com/toodeeplytotell/p/8884534.html