python 笔记总结

python  3.5

 面向对象:
类:具有同种属性的对象称为类,是个抽象的概念。比如说:汽车、人、狗、神;
对象:日常生活中的所有东西都是对象,是类的实例化。比如说:推土车是汽车的实例化;姚明是人的实例化;小白(狗的名字)是狗的实例化;二郎神是神的实例化;
属性:用来描述具体某个对象的特征的是属性,是静态的。比如:姚明身高2.6米多;小白的毛发是棕色的;二郎神额头上有只眼睛;
方法:每个对象有它们自己的行为或者是使用它们的方法,比如说一只狗会跑会叫等,我们把这些行为称之为方法,是动态的,可以使用这些方法来操作一个对象;
类的成员:属性和方法称为这个对象的成员,因为它们是构成一个对象的主要部分,没有了这两样东西,那么对象也没什么存在意义了。


一、基础:

1、变量

 

 1  a = 1   #a是变量,1是变量a对应的值
 2  print(a)
 3 
 4  name = jack   #name是变量,jack是变量name对应的值
 5  print(name)
 6 
 7 counter = 100 # 赋值整型变量(int)
 8 miles = 1000.0 # 浮点型(float)
 9 name = "John" # 字符串 (str)
10 
11 
12 a = b = c = 1 #同时为多个变量赋值
13 a, b, c = 1, 2, "john" #为多个对象指定多个变量
14 (两个整型对象1和2的分配给变量a和b,字符串对象"john"分配给变量c。)

 

2、输入

name = input('please enter your name: ') #获取用户输入
print('hello,', name) #输出

3、可变列表

list是一种有序的集合,可以随时添加和删除其中的元素

L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] #列表用[] 

L.pop(1)#删除指定位置的元素,1是索引位置

L.insert(1, 'Lisa')#元素插入到指定的位置

L.append('Adam')#list中追加元素到末尾

L[2] = 'Tom'#某个元素替换成别的元素,可以直接赋值给对应的索引位置

s = ['python', 'java', ['asp', 'php'], 'scheme']#list元素也可以是另一个list

4、不可变元组

1 L = ('Michael', 'Sarah', 'Tracy', 'Bob', 'Jack') #元组用()
2 t = (1,)#只有1个元素的tuple定义时必须加一个逗号,,来消除歧义
3 t = ()#空元组

5、字典(dict)

字典类似于通过联系人名称查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息。

字典的每个键=>值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})

1 d = {key1 : value1, key2 : value2 }#标准语法
2 
3 d = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}#根据名字查找分值
4 d['Alice']
5 2341
6 
7 d.pop('Cecil')#用pop(key)方法,对应的value也会从dict中删除:

6、set

不能重复的key的集合

要创建一个set,需要提供一个list作为输入集合:

s = set([1, 2, 3])#标准输入set()
s
{1, 2, 3}

s = set([1, 1, 2, 2, 3, 3])#重复元素在set中自动被过滤:
s.add(4)#通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:
s.remove(4) #通过remove(key)方法可以删除元素:

 7、列表截取

L[2]#读取列表中第三个元素
L[-2]#读取列表中倒数第二个元素
L[1:]#从第二个元素开始截取列表
L[:10:2]#前10个数,每两个取一个
L[::5]#所有数,每5个取一个:

8、元组截取

(0, 1, 2, 3, 4, 5)[:3]

9、列表生成式

1  list(range(1, 11))#生成列表list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2  [x * x for x in range(1, 11)]#生成[1x1, 2x2, 3x3, ..., 10x10]列表
3  [x * x for x in range(1, 11) if x % 2 == 0] #筛选出仅偶数的平方_x %  2 ==0 就是x除以2余数为0 ,代表能被2整除 。

10、生成器(generator)

psaa

 

11、迭代器

pass

二、函数:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()
  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None

 

 1 #基本函数定义
 2 def func():
 3     print('f')
 4 
 5 name()
 6 
 7 
 8 # 带返回值的函数。
 9 def func():#定义 fun 函数
10     return('返回值函数')#返回值
11 print(func())#打印函数,返回return的值
12 返回值函数
13 
14 # 带多个返回值的函数。
15 def func_with_muti_return():
16      return ("func_with_muti_return", "func_with_muti_return")#返回两个值
17  
18  print(func_with_muti_return())
19  ('func_with_muti_return', 'func_with_muti_return')#函数可以同时返回多个值,但其实就是一个tuple。
20 
21  # 位置参数
22  def power(x):#对于power(x)函数,参数x就是一个位置参数。
23      return x * x# 返回x的平方
24 power(5)
25 25
26  
27  #函数有两个参数:name和gender
28 def enroll(name, gender):
29     print('name:', name)
30     print('gender:', gender)
31 enroll('Sarah', 'F')#调用函数时,传入的两个值按照位置顺序依次赋给参数name和gender。
32 name: Sarah
33 gender: F
34 
35 
36 #默认值参数
37 def power(x, n=2):#把第二个参数n的默认值设定为2:
38     s = 1
39     while n > 0:
40         n = n - 1
41         s = s * x
42     return s
43 power(5)#调用power(5)时,相当于调用power(5, 2):
44 25
45 
46 
47 #可变参数,参数的个数是可多可少的,这些可变参数在函数调用时自动组装为一个tuple。
48 def calc(*numbers):#在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple
49 sum = 0
50     for n in numbers:
51         sum = sum + n * n
52     return sum
53 calc()
54 0
55 
56 nums = [1, 2, 3]#已经有一个list或者tuple,要调用一个可变参数怎么办
57 calc(*nums)
58 14
59 
60 #关键字参数 关键字参数在函数内部自动组装为一个dict:
61 def person(name, age, **kw):
62     print('name:', name, 'age:', age, 'other:', kw)
63 
64 extra = {'city': 'Beijing', 'job': 'Engineer'}#先组装出一个dict
65 person('Jack', 24, **extra)#**extra表示把extra这个dict的所有key-value用关键字参数传入到函数的**kw参数,kw将获得一个dict,注意kw获得的dict是extra的一份拷贝,对kw的改动不会影响到函数外的extra。
66 
67 #命名关键字参数   限制关键字参数的名字,就可以用命名关键字参数
68 def person(name, age, *, city, job):
69     print(name, age, city, job)#和关键字参数**kw不同,命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数。
70 
71 person('Jack', 24, city='Beijing', job='Engineer')#调用函数
72 Jack 24 Beijing Engineer
73 
74 def person(name, age, *args, city, job):#如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了:
75     print(name, age, args, city, job)
76 
77 使用命名关键字参数时,要特别注意,如果没有可变参数,就必须加一个*作为特殊分隔符。
78 
79 #参数组合
80 可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
81 def f1(a, b, c=0, *args, **kw):
82     print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
83 def f2(a, b, c=0, *, d, **kw):
84     print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)
85 
86     pass  不理解

 

posted on 2017-01-07 16:35  阿宿  阅读(232)  评论(0)    收藏  举报

导航