码迷,mamicode.com
首页 > 编程语言 > 详细

python基础

时间:2018-04-20 23:37:53      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:异常   结构   写法   不同类   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

python基础

标签:异常   结构   写法   不同类   name   div   each   序列   eve   

原文地址:https://www.cnblogs.com/toodeeplytotell/p/8884534.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!