python学习笔记(四)— 补充】的更多相关文章

Python的函数除了正常使用的必选参数外,还可以使用默认参数.可变参数和关键字参数. 默认参数 基本使用 默认参数就是可以给特定的参数设置一个默认值,调用函数时,有默认值得参数可以不进行赋值,如: def power(x, n=2): s=1 while n > 0: n = n - 1 s = s * x return s 这样调用power(5)时,相当于调用power(5, 2). 设置默认参数时的注意事项: 一是必选参数必须在前,默认参数在后,否则Python的解释器会报错: 二是如何…
一.装饰器 1.知识储备 函数对象 函数可以被引用 函数可以当参数传递 返回值可以是函数 可以当作容器的元素 def func1(): print (666) def func2(): print (666) def func3(): print (666) list1=[func1,func2,func3] for i in list1: i() *args:接收溢出的位置参数 **kwargs:接收溢出的关键字参数 名称空间与作用域 2.闭包函数 闭包函数的定义:定义在函数内部的函数,特点是…
一:定义类并创建实例 Python中定义类,通过class关键字,类名开头大写,参数列表为所继承的父类.如果没有需要明确继承的类,则继承object. 使用类来创建对象,只需 类名+() 形式即可,python中没有new创建对象的. class Person(object): pass xiaoming = Person() xiaohong = Person() 二:动态改变的类属性 Python可以在创建实例后,通过实例来添加属性.而不是直接在类中定义好所有属性,并且同一个类的不同对象,可…
一.zip的坑 zip()函数接收多个可迭代数列,将数列中的元素重新组合,在3.0中返回迭代器指向 数列首地址,在3.0以下版本返回List类型的列表数列.我用的是3.5版本python, 所以zip返回的是指向地址. 先看几个例子 结果: 可见,在3.0以上版本,对zip函数返回的结果采用list函数可以转化为列表. 通过列表生成式同样可以将zip结果化为列表. 结果: 当zip操作的对象为一个列表,那么生成的列表中每个元素(元祖)中 为(n,)形式. 当zip操作的多个列表长度不一样,那么z…
一.函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method. 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. 二.使用函数的好处: 1.简化代码2.提高代码的复用性3.代码可扩展 三.p…
一.生成器 生成器是什么?其实和list差不多,只不过list生成的时候数据已经在内存里面了,而生成器中生成的数据是当被调用时才生成呢,这样就节省了内存空间. 1. 列表生成式,在第二篇博客里面我写了三元运算符,和那个有点像,如果要生成列表[‘01’, ‘02’, ‘03’, ..., ‘10’]怎么做?除了循环还可以用一行语句代替循环生成. list = [str(i).zeffill() for i in range(1,11)] 生成器:要创建一个generator,有很多种方法.第一种方…
在能够获取到网页内容之后,发现内容很多,那么下一步要做信息的筛选,就和之前的筛选图片那样 而在python中可以通过正则表达式去筛选自己想要的数据 1.首先分析页面内容信息,确定正则表达式.例如想获取下面这些内容的链接 可以通过筛选出符合<li><a href="xxx"的内容,获取到href中的链接,设置正则:reg = r'<li><a href="(.+?)"'去筛选数据就OK了: 2.在python中用正则表达式去筛选数据…
迭代器 __iter__方法返回一个迭代器,它是具有__next__方法的对象.在调用__next__方法时,迭代器会返回它的下一个值,若__next__方法调用迭代器 没有值返回,就会引发一个StopIteration异常.    特点: 访问者不需要关心迭代器内部的结构,仅需通过__next__方法不断去取下一个内容 不能随机访问集合中的某个值 ,只能从头到尾依次访问 访问到一半时不能往回退 便于循环比较大的数据集合,节省内存 name = iter(['koka','lolo','lala…
字典是Python中唯一的映射类型.所谓映射即指该数据类型包含哈希值(key)和与之对应的值(value)的序列.字典是可变类型.字典中的数据是无序排列的. 4.1.1字典的创建及赋值 dict1={} dict2={'name':John,'age':24} 使用dict()函数创建字典. dict()函数接受序列,或关键字参数作为参数创建字典.若不提供参数则创建空字典. dict1=dict([['x',1],['y',2]])#接受list作为参数创建字典 dict2=dict(x=1.y…
1 再谈print和import 1.1 打印多个参数 print 能够同时打印多个表达式,并且能自定义分隔符.如下: print('a','b','c') ——> a b c print('a','b','c',sep="_") ——> a_b_c 1.2 import 导入模块时,能够给导入的模块取一个别名(相对于生活中的小名,不管怎么叫,还是你而已),方法是在语句末尾添加 as 子句并指定别名. import math as foobar from pi import…
模块与包 python模块,一个.py文件 导入模块的语法: import importable  importable#可以是包或包中的模块 import importable1,....,importableN import importable as preferred_Name 第三种语法可能导致名称冲突 一般写在.py文件的起始位置:顺序导入-标准库,第三方库,自己的库 from importable import object as preferred_name from impor…
3.3.3 break 和 continue语句 break:跳出整个循环 continue:跳出当前循环继续后面的循环 例: x=int(input("please input the 'x':")) y=0 for y in range(0,100): if(x==y): print("the number is :",x) break else: print("The number was not found") x=0 for i in…
阅读目录 一 介绍 二 多表连接查询 三 符合条件连接查询 四 子查询 五 综合练习 一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 准备表 #建表 create table department( id int, name varchar(20) ); create table employee( id int primary key auto_increment, name varchar(20), sex enum('male','female') not null defau…
阅读目录 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER BY 八 限制查询的记录数:LIMIT 九 使用正则表达式查询 一 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二 关键字的执行优先级(重点) 重点中的重点:关键字的执行优先级 f…
阅读目录 一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition>…
>>> u = "www.doiido.com.cn" #使用默认分隔符 >>> print u.split() ['www.doiido.com.cn'] #以"."为分隔符 >>> print u.split('.') ['www', 'doiido', 'com', 'cn'] #分割0次 >>> print u.split('.',0) ['www.doiido.com.cn'] #分割…
一.定义 lambda arg1,arg2... : returnValue 二.示例 #!/usr/bin/python def f(x,y): return x*y print f(2,3) g = lambda x,y:x*y print g(2,3) 三.switch的一种实现方案 #!/usr/bin/python from __future__ import division #a=int(raw_input('please input num1:')) #b=int(raw_inp…
案例一:在某随机序例中,找到出现频度最高的3个元素,它们出现的次数是多少? from random import randint # 利用列表解析器生成随机序列,包含有30个元素 data = [randint(0, 20) for _ in range(30)] # 以data中的元素作为字典的键,以0作为值创建一个字典 my_dict = dict.fromkeys(data,0) # 对序列data进行迭代循环 for x in data: my_dict[x] += 1 # 对迭代的每个…
图表部分,很多要记忆的.以下来自于培训材料的记录. 但我个人觉得更重要的是要根据业务特点确定用什么样的图表,然后再去查具体的参数,光记住参数意义不是很大. import numpy as np import pandas as pd import matplotlib.pyplot as plt % matplotlib inline 一.数据读取 data = pd.read_csv('文件名.csv',engine = 'python',encoding = 'utf-8') 二.绘制图表…
接着三继续写http://www.cnblogs.com/dzzy/p/5295019.html 文件和函数操作: from sys import argv script,input_file=argv def print_all(f): print f.read() def rewind(f): f.seek(0) def print_a_line(line_count,f): print line_count,f.readline() current_file=open(input_file…
webdriver可以很方便的使用find_element方法来定位某个特定的对象,不过有时候我们却需要定位一组对象,这时候就需要使用find_elements方法. 定位一组对象一般用于以下场景: 批量操作对象,比如将页面上所有的checkbox都勾上 先获取一组对象,再在这组对象中过滤出需要具体定位的一些对象.比如定位出页面上所有的checkbox,然后选择最后一个 checkbox.html <html> <head> <meta http-equiv="co…
一.元组: 1. 不可变更的列表 2. 从语法上,她们是编写在小括号里,不是方括号里,列表是编写在方括号里的 3. 圆括号也同时用于表达式,如果想说明这是一个元组,不是表达式,可以在value后,关闭圆括号前加个逗号 例如: y=(40,) 二.转换: 1. 先做数据转换成列表 1.1 list()函数 1.2 列表解析方式:for循环 2. tuple函数把数据转换成元组 三.顶层不可改原则: 如果元组里嵌套了其他数据类型,除了顶层不可改,嵌套里的列表,字典是可以原地修改的.…
dict是字典dictionary的缩写,他存放的是键值对key/value,用花括号表示,格式为d={'micheal':99,'jack':88} 当我们访问的时候直接print(d['micheal'])#输出相应的99: 可以给dict复制并且会覆盖掉原来的value,但是如果key没有对应的value就会报错, 通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:print(d.get('tomash'))#会输出none 在dict中如果有重复…
阅读目录 一 题目 二 答案 一 题目 1.查询所有的课程的名称以及对应的任课老师姓名 2.查询学生表中男女生各有多少人 3.查询物理成绩等于100的学生的姓名 4.查询平均成绩大于八十分的同学的姓名和平均成绩 5.查询所有学生的学号,姓名,选课数,总成绩 6. 查询姓李老师的个数 7. 查询没有报李平老师课的学生姓名 8. 查询物理课程比生物课程高的学生的学号 9. 查询没有同时选修物理课程和体育课程的学生姓名 10.查询挂科超过两门(包括两门)的学生姓名和班级 .查询选修了所有课程的学生姓名…
列表 切片 中括号,逗号分隔,可以一次取出多个元素,起始位置包括,结束位置不包括(顾头不顾尾) 如果取最后一个,而且不知道列表长度,可以使用负数(-1是最后一个,以此类推) 如果取最后几个,记住从左往右数着取值,顾头不顾尾,所以如果取最后两个应该是[-2:] 从前取,如果是从0 开始,也可以省略 追加元素 a_list.append(value) 插入元素到任意位置 a_list.insert(index,value) 修改元素 a_list[index]=value 删除元素 a_list.r…
从以上代码中应该了解到: obj.attribute  查找的顺序: 从对象,类组成的树中,从下到上,从左到右到查找最近到attribute属性值,因为rec中存在name的属性,所以x.name可以去到值. 但通过__dict__就取不到值,因为__dict__属性是基于类对象的命名空间字典. 命名空间: 局部命名空间,全局命名空间,内建命名空间 locals() 为局部命名空间, globals()全局命名空间 # 类的扩展 一种好的扩展方式,一种坏的扩展方式,自行体会 除了类的继承外,还有…
用户输入 函数input demo1: message = input("all you input is chars:") print(message) demo2: 由input接受的所有内容都将被以字符串数字储存,需要用int()强制转换 number = input("please input a number") num = int(numbers) while循环处理列表和字典 删除包含特定值的所有列表元素 pets = ['dog', 'cat', '…
文件读写"""一.文件打开有3种方式 1.读 r #如果打开的文件的时候没有指定模式,那么默认是读 读写模式 r+,只要沾上r,文件不存在的时候,打开都会报错 2.写 w #w模式会清空原有文件内容 写读模式 w+ 只要沾上w,他就会把文件内容清空 3.追加 a 追加读写二.文件指针 f.seek(0)#seek移动指针的时候,只对读好使,对写不好使 当open时文件指针是在初始位置1,当读取4个字节内容是文件指针位置就在4,再write时,文件指针从4移到8,所以,只要控制…
接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Author(models.Model): first_name = models.CharField(max_length=) last_name = models.CharField(max_length=) email = models.EmailField(blank=True ) 所有字段都默认bl…
Python学习笔记(十四): Json and Pickle模块 shelve模块 1. Json and Pickle模块 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,eval就不管用了,所以eval的重点还是通常用来执行一个字符串表达式,并返回表达式的值. 1. 什么是序列化 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中…