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. 转: ant condition使用

    评注: 用c语言的方式来,比喻ant...比较好理解 转: http://www.smithfox.com/?e=176 [备忘] Apache Ant中的逻辑判断 [原创链接: http://www ...

  2. 转: 数字证书原理 https 完整过程解析

    点评: 讲的非常的详细与全面,值得一看. 转: http://www.cnblogs.com/JeffreySun/archive/2010/06/24/1627247.html 文中首先解释了加密解 ...

  3. innerHTML与innerText的PK

    一.innerText属性用来定义对象所要输出的文本,在本例中innerText把对象it中的文本"您喜欢看微微一笑很倾城吗?"变成了"超级喜欢!"(语句it. ...

  4. 一步步搭建自己的轻量级MVCphp框架-(三)一个国产轻量级框架Amysql源码分析(2) 进程

    Amysql类 按照我的理解这就是框架的初始化 上代码 class Amysql { public $AmysqlProcess; public function Amysql() { global ...

  5. 【CSS3】---曲线阴影翘边阴影

    效果图 代码 index <!DOCTYPE html> <html> <head> <meta charset=utf-8 /> <title& ...

  6. Android OpenGL ES(一)----必备知识

    1.手机的坐标空间 我们都知道要想在手机上随心所欲的绘制图形,就必须了解手机的坐标体系.下图就是将坐标映射到手机屏幕的坐标. 图1手机屏幕基本坐标系 2.OpenGL基本图形 在OpenGL里,只能绘 ...

  7. Part 10 AngularJS sort rows by table header

    Here is what we want to do 1. The data should be sorted when the table column header is clicked 2. T ...

  8. SQL Server 日志清除

    在SqlServer中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式. *[DataBaseName]要压缩日志的数据库名称. 设置数据库模式为简单模式 ALTER DATABASE ...

  9. 简单的MySQL数据库主从同步配置

    Master配置: 代码如下 复制代码 log-bin = mysql-binserver-id = 1binlog-do-db = powerdns #要同步的数据库 Master新增slave账号 ...

  10. PHP static静态局部变量和静态全局变量总结

    1.不会随着函数的调用和退出而发生变化,不过,尽管该变量还继续存在,但不能使用它.倘若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值 2.静态局部变量只会初始化一次 3.静态属 ...