python  3.5

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


一、基础:

1、变量

  a = 1   #a是变量,1是变量a对应的值
print(a) name = jack #name是变量,jack是变量name对应的值
print(name) counter = 100 # 赋值整型变量(int)
miles = 1000.0 # 浮点型(float)
name = "John" # 字符串 (str) a = b = c = 1 #同时为多个变量赋值
a, b, c = 1, 2, "john" #为多个对象指定多个变量
(两个整型对象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、不可变元组

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

5、字典(dict)

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

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

 d = {key1 : value1, key2 : value2 }#标准语法

 d = {'Alice': '', 'Beth': '', 'Cecil': ''}#根据名字查找分值
d['Alice']
2341 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、列表生成式

  list(range(1, 11))#生成列表list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[x * x for x in range(1, 11)]#生成[1x1, 2x2, 3x3, ..., 10x10]列表
[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
 #基本函数定义
def func():
print('f') name() # 带返回值的函数。
def func():#定义 fun 函数
return('返回值函数')#返回值
print(func())#打印函数,返回return的值
返回值函数 # 带多个返回值的函数。
def func_with_muti_return():
return ("func_with_muti_return", "func_with_muti_return")#返回两个值 print(func_with_muti_return())
('func_with_muti_return', 'func_with_muti_return')#函数可以同时返回多个值,但其实就是一个tuple。 # 位置参数
def power(x):#对于power(x)函数,参数x就是一个位置参数。
return x * x# 返回x的平方
power(5)
25 #函数有两个参数:name和gender
def enroll(name, gender):
print('name:', name)
print('gender:', gender)
enroll('Sarah', 'F')#调用函数时,传入的两个值按照位置顺序依次赋给参数name和gender。
name: Sarah
gender: F #默认值参数
def power(x, n=2):#把第二个参数n的默认值设定为2:
s = 1
while n > 0:
n = n - 1
s = s * x
return s
power(5)#调用power(5)时,相当于调用power(5, 2):
25 #可变参数,参数的个数是可多可少的,这些可变参数在函数调用时自动组装为一个tuple。
def calc(*numbers):#在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple
sum = 0
for n in numbers:
sum = sum + n * n
return sum
calc()
0 nums = [1, 2, 3]#已经有一个list或者tuple,要调用一个可变参数怎么办
calc(*nums)
14 #关键字参数 关键字参数在函数内部自动组装为一个dict:
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw) extra = {'city': 'Beijing', 'job': 'Engineer'}#先组装出一个dict
person('Jack', 24, **extra)#**extra表示把extra这个dict的所有key-value用关键字参数传入到函数的**kw参数,kw将获得一个dict,注意kw获得的dict是extra的一份拷贝,对kw的改动不会影响到函数外的extra。 #命名关键字参数 限制关键字参数的名字,就可以用命名关键字参数
def person(name, age, *, city, job):
print(name, age, city, job)#和关键字参数**kw不同,命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数。 person('Jack', 24, city='Beijing', job='Engineer')#调用函数
Jack 24 Beijing Engineer def person(name, age, *args, city, job):#如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了:
print(name, age, args, city, job) 使用命名关键字参数时,要特别注意,如果没有可变参数,就必须加一个*作为特殊分隔符。 #参数组合
可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
def f1(a, b, c=0, *args, **kw):
print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
def f2(a, b, c=0, *, d, **kw):
print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw) pass 不理解

python 笔记总结的更多相关文章

  1. Python笔记之不可不练

    如果您已经有了一定的Python编程基础,那么本文就是为您的编程能力锦上添花,如果您刚刚开始对Python有一点点兴趣,不怕,Python的重点基础知识已经总结在博文<Python笔记之不可不知 ...

  2. boost.python笔记

    boost.python笔记 标签: boost.python,python, C++ 简介 Boost.python是什么? 它是boost库的一部分,随boost一起安装,用来实现C++和Pyth ...

  3. 20.Python笔记之SqlAlchemy使用

    Date:2016-03-27 Title:20.Python笔记之SqlAlchemy使用 Tags:python Category:Python 作者:刘耀 博客:www.liuyao.me 一. ...

  4. Python笔记——类定义

    Python笔记——类定义 一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属 ...

  5. 13.python笔记之pyyaml模块

    Date:2016-03-25 Title:13.Python笔记之Pyymal模块使用 Tags:Python Category:Python 博客地址:www.liuyao.me 作者:刘耀 YA ...

  6. 8.python笔记之面向对象基础

    title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自1 ...

  7. python笔记 - day8

    python笔记 - day8 参考: http://www.cnblogs.com/wupeiqi/p/4766801.html http://www.cnblogs.com/wupeiqi/art ...

  8. python笔记 - day7-1 之面向对象编程

    python笔记 - day7-1 之面向对象编程 什么时候用面向对象: 多个函数的参数相同: 当某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性的封装到对象,以后去对象中取值即可: ...

  9. python笔记 - day7

    python笔记 - day7 参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html 面向对象,初级篇: http://www.cnblog ...

  10. python笔记 - day6

    python笔记 - day6 参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html 大纲: 利用递归,实现阶乘: Python反射 pyt ...

随机推荐

  1. OpenShare常见问题及解答

    OpenShare常见问题及回答: Q:OpenShare可以整合SAP么? A:当然可以,OpenShare是真正完全开放的产品,但要进行二次开发,事实上我们帮我们大部分的客户都整合了SAP,包括数 ...

  2. html使用空格对齐文本(&nbsp;&emsp;&ensp;)

    字符以及HTML实体 描述以及说明   这是我们使用最多的空格,也就是按下space键产生的空格.在HTML中,如果你用空格键产生此空格,空格是不会累加的(只算1个).要使用html实体表示才可累加. ...

  3. 微信小程序个人理解

    1:小程序不是用HTML5开发,它是由微信全新定义的规范,是基于XML+JS的,不支持也不兼容HTML,兼容受限的部分CSS写法.(wxml) weixin markup language 2:小程序 ...

  4. Asp.Net复习篇之Asp.Net生命周期与Asp.Net页的生命周期

    Asp.Net生命周期与Asp.Net页的生命周期是一个比较重要的话题,有时可能似乎知道一些,但又说不出个所以然,而且时常把这两个概念混淆.现在也是该好好理清思路,把这两个概念搞懂. Asp.Net生 ...

  5. char*,const char*和string 三者转换

    1. const char* 和string 转换 (1) const char*转换为 string,直接赋值即可. EX: const char* tmp = "tsinghua&quo ...

  6. 删除utorrent广告栏

    自从utorrent附带广告栏后整个页面很难看,特别是右面下载详细列表变得支离破碎,今天实在是忍不了,网络搜索关键字“remove utorrent ads”,有效解决了问题. 具体如下:打开设置,选 ...

  7. throws与throw的对比

    1.throws关键字通常被应用在声明方法时,用来指定可能抛出的异常.多个异常可以使用逗号隔开.当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象.如下面例子所示:public cla ...

  8. IOS开发: 为UIImageView添加点击事件

    转载于:http://www.pocketdigi.com/20140218/1276.html UIImageView并不像UIButton一样,点点鼠标就可以关联点击事件,也不像Android里有 ...

  9. 【学习笔记】【C语言】赋值运算

    将某一数值赋给某个变量的过程,称为赋值. 1. 简单赋值 C语言规定,变量要先定义才能使用,也可以将定义和赋值在同一个语句中进行 int a = 10 + 5;的运算过程 a = b = 10;的运算 ...

  10. Matlab摄像头标定得出的参数保存为xml

    最近在做双摄像头的立体匹配,发现OpenCV定标效果不如MatLab的效果,于是用MatLab标定箱做标定,将得到的结果保存为xml,然后,提供给opencv使用.MatLab标定箱做标定得到的结果如 ...