# 文件处理# 打开文件# open('路径','打开方式', '指定编码方式')# 打开方式:r w a 可读可写:r+ 可写可读:w+ 可追加可读:a+ b# r+ :打开文件直接写,和读完再写 不一样# 编码方式:一般情况下用 utf-8 # 操作文件 # 读# read:一次性读# readlines:一次性读# readline: 一行一行读 # 不知道在哪里结束 # 视频 图片 rb 打开 bytes类型 按照字节读(不按行读,没有行的概念) # for循环 --> 最好的方法 #…
'''# len# 计算字符串的长度# s = '金老板小护士'# len(s)# 不能用 len 怎么办#low一点的方法# count = 0# for i in s:# count += 1# print(count) s1 = '班主任阿娇'# count = 0# for i in s1:# count += 1# print(count) #相当于把一段代码放到了一个地方# 函数 可以多次的调用函数def my_len(): # 定义函数(不执行,执行需要用到调用函数),my_len…
1. 写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者. 答: l1 = [] def odd(li): for i in range(1,len(li),2): l1.append(li[i]) return l1 rec = [',123,456] odd(rec) print(l1) 结果: [', 456] 2. 写函数,判断用户传入的对象(字符串.列表.元组)长度是否大于5. 答: def length(s): if len(s) > 5: r…
'''# len# 计算字符串的长度# s = '金老板小护士'# len(s)# 不能用 len 怎么办#low一点的方法# count = 0# for i in s:# count += 1# print(count) s1 = '班主任阿娇'# count = 0# for i in s1:# count += 1# print(count) #相当于把一段代码放到了一个地方# 函数 可以多次的调用函数def my_len(): # 定义函数(不执行,执行需要用到调用函数),my_len…
一. 反射 ''' # isinstance class A:pass class B(A):pass a = A() print(isinstance(a,A)) # 判断对象和类的关系 print(issubclass(B,A)) # 判断子类和父类的关系 print(issubclass(A,B)) ''' #--------------------------------------------------------------------------------# # # 反射:是用…
# 作用域相关(2)locals() # 返回本地作用域中的所有名字 globals() # 返回全局作用域中的所有名字 # 迭代器/生成器相关(3)range()print('__next__' in dir(range(10))) # False --> 可迭代的,但不是迭代器print('__next__' in dir(iter(range(10)))) # True --> iter()转换之后,就成为迭代器了 # next(迭代器) # 迭代器.__next__() == next…
一. 类和对象命名空间类里 可以定义两种属性: 1. 静态属性 2. 动态属性 class Course: language = 'Chinese' def __init__(self, teacher, course_name, period, price): self.teacher = teacher # 授课老师 self.name = course_name # 课程名字 self.period = period # 课程周期 self.price = price # 课程价格 def…
一.文件操作 今日大纲: 1.文件操作->open() open 打开 f=open(文件路径,mode='模式',encoding='编码格式') #python最最底层操作的就是bytes 打开一个文件的时候获取到的是一个文件句柄(#相当于插了一根管子) 绝对路径 从磁盘根目录开始寻找 相对路径 相对于当前程序所在的文件夹 ../上一层文件 文件夹/进入xxx文件夹2.mode: 高频: r r+ rb w wb a 了解: w+ a+ ab r+b w+b a=b (1)r:读取,只读,读…
1. 判断下列逻辑语句的True,False.(1) 1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6True(2) not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6False 2. 求出下列逻辑语句的值.(1) 8 or 3 and 46 or 2 and 0 or 9 and 78(2) 0 or 2 and…
day 6python基础数据类型考试题 考试时间:两个半小时 满分100分(80分以上包含80分及格) 一,基础题. 1. 简述变量命名规范(3分) 答:(1) 变量为数字,字母以及下划线的任意组合,且不能以数字开头 (2) 变量名不宜过长,要具有可描述性 (3) 变量名不能为中文和汉字拼音 (4) 默认全大写的为常量 (5) 不能为Python的关键字 2. 字节和位的关系.(2分) 答:1个字节 == 8位 3. ’太白’使用utf-8编码时,占的位数和字节数,是多少?使用gbk编码时,占…
一. collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:namedtuple.deque.Counter.OrderedDict和defaultdict等. 1.namedtuple: 生成可以使用名字来访问元素内容的tuple 2.deque: 双端队列,可以快速的从另外一侧追加和推出对象 3.Counter: 计数器,主要用来计数 4.OrderedDict: 有序字典 5.defaultdic…
一. 递归函数 如果一个函数在内部调用自身本身,这个函数就是递归函数. 最大递归深度默认是997 -- python从内存角度出发做得限制(而不是程序真的报错),最大深度可以修改 def func(n): print(n) func(n+1) func(1) 查看最大递归深度 ‘’‘ 改变最大递归深度,根据自身电脑配置,深度各不相同 ’‘’ import sys sys.setrecursionlimit(1000000) 修改最大递归深度 举个例子: 现在你们问我,alex老师多大了?我说我不…
三. MySQL视图(不常用) 给某个查询语句设置个别名(视图名),日后方便使用 - 创建: create view 视图名 as SQL; PS:视图是虚拟的 - 修改: alter view 视图名 as SQL; - 删除 drop view 视图名; create view v1 as select * from student where sid>10; select * from v1; student表增加数据,v1视图也会随着增加,不能在v1里面增加数据 四. 触发器(不推荐使用…
一. 选择题(32分) 1. python不支持的数据类型有:AA. charB. intC. floatD. list 2. Ex = ‘foo’y = 2print(x + y)A. fooB. foofooC. foo2D. 2E. An exception is thrown 3. 关于字符串下列说法错误的是 BA. 字符应该视为长度为1的字符串B. 字符串以\0标志字符串的结束C. 既可以用单引号,也可以用双引号创建字符串D. 在三引号字符串中可以包含换行回车等特殊字符4. 以下不能创…
一.关系运算 有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}linuxs={'wupeiqi','oldboy','gangdan'}1. 求出即报名python又报名linux课程的学员名字集合 print(pythons & linuxs)2. 求出所有报名的学生名字集合 print(pythons |…
def qqxing(l = []): # 可变数据类型 l.append(1) print(l)qqxing() # [1]qqxing([]) # [1]qqxing() # [1, 1]qqxing() # [1, 1, 1] # 如果默认参数的值是一个可变数据类型,那么每一次调用函数的时候,如果不传值,就公用这个数据类型的资源 def qqxing(l = {}): # 可变数据类型 l['k'] = 'v' print(l)qqxing() # {'k': 'v'}qqxing({})…
基础数据类型汇总 1. str 2. int 3. list 4. bool 5. dict (1) fromkeys Python 字典 fromkeys() 方法用于创建一个新的字典,并以可迭代对象中的元素分别作为字典中的键,且所有键对应同一个值,默认为None. 6. tuple 元组里面如果只有一个元素且不加逗号,则类型和该元素一样 7.set (1) 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重…
1. Python2与Python3的区别: Python2:源码不标准,混乱,重复代码太多: Python3:统一标准,去除重复代码. 编码方式: python2的默认编码方式为ASCII码:python3的默认编码方式为utf-8(解决方式:在文件的首行输入:# -*- encoding:utf-8 -*-) print函数: Python3中print为一个函数,必须用括号括起来:Python2中print为class input(): Python3中用input,Python2中用ro…
复习: 1. MySQL:文件管理的软件 2. 三部分: - 服务端 - SQL语句 - 客户端 3. 客户端: - MySQL - navicat 4. 授权操作: - 用户操作 - 授权操作 5. SQL语句 - 数据库操作 - 创建数据库要指定字符编码: create database xx default charset=utf8; - 删除数据库: drop database xx; - 数据表操作 - 列 - 数字 整数 小数 - 字符串 - 时间 datatime - 二进制 -…
一. 复习1. MySQL: - 服务端 - 客户端2. 通信交流 - 授权 - SQL语句 - 数据库 创建数据库: create database db1 default charset utf8; 删除数据库: drop database db1; - 数据表 创建数据表: create table tb1( id int not null auto_increment primary key, name char(10), depatment_id int, constraint fk_…
# 迭代器和生成器# 迭代器 # 双下方法:很少直接调用的方法,一般情况下,是通过其他语法触发的# 可迭代的 --> 可迭代协议:含有__iter__的方法( '__iter__' in dir(数据) )# 可迭代的一定可以被for循环# 迭代器协议:含有__iter__.__next__的方法# 迭代器一定可迭代,可迭代的通过调用iter()方法就能得到一个迭代器# 迭代器的特点: # 很方便使用,且只能取所有的数据取一次 # 节省内存空间 # 生成器# 生成器的本质就是迭代器# 生成器的表…
'''数据类型:intbool... 数据结构:dict (python独有的)listtuple (pytho独有的)setstr''' # reverse() 反转l = [1,2,3,4,5]l.reverse()print(l) # reversed() 反转,但它的反转不改变原来的列表且返回一个反序的迭代器l = [1,2,3,4,5]l2 = reversed(l)print(l2) # <list_reverseiterator object at 0x000001DF4CC309…
迭代器 双下方法:很少直接调用的方法,一般情况下,是通过其他语法触发的 1. 可迭代的 --> 可迭代协议:含有__iter__的方法( '__iter__' in dir(数据) ) 可迭代的一定可以被for循环 2. 迭代器协议:含有__iter__.__next__的方法 迭代器一定可迭代,可迭代的通过调用iter()方法就能得到一个迭代器 迭代器的特点: 很方便使用,且只能取所有的数据取一次 节省内存空间 for 循环其实就是在使用迭代器 判断是不是迭代器,其实是为了使用for循环当我们…
1. 请利用filter()过滤出1~100中平方根是整数的数,即结果应该是: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] import math def func(x): return math.sqrt(x) % 1 == 0 ret = filter(func,range(0,101)) for i in ret: print(i) 2. 列表按照其中每一个值的绝对值排序 li = [1,-2,3,-48,78,9]print(sorted(li,key…
一. 接口类 java:面向对象编程 设计模式 -- 接口类 接口类:python原生不支持 抽象类:python 原生支持的 from abc import abstractclassmethod,ABCMeta class Payment(metaclass= ABCMeta): # 元类,默认元类:type @abstractclassmethod def pay(self, money): raise NotImplemented # 没有实现这个方法 # Payment 规范:接口类/…
一. 单继承 class A:pass # 父类,也叫基类,也叫超类 class B:pass # 父类,也叫基类,也叫超类 class AB_son(A,B):pass # 子类,也叫派生类 class B_son(B):pass # 子类,也叫派生类 一个类可以被多个类继承 一个类可以继承多个父类 -- python 独有的 print(AB_son.__bases__) # (<class '__main__.A'>, <class '__main__.B'>) print(…
一. 序列化模块 # 序列化 --> 将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化# 反序列化 --> 从字符串转换成数据类型的过程叫做反序列化# 序列 -- 字符串 # 什么地方需要转换成字符串?# 数据存储:写文件等# 网络上传输的时候只能传bytes,故需要先转成字符串 # json -- 最重要:*****(5星级)# pickle -- ****# shelve -- *** # json # 好处:通用的序列化格式 # 弊端:只有很少的一部分数据类型能够通过json转…
一. 正则表达式 正则表达式本身和python没有什么关系,就是匹配字符串内容的一种规则. 官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑. 谈到正则,就只和字符串相关了. 字符组 : [字符组] 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示 字符分为很多类,比如数字.字母.标点等等. 假如你现在要求一个位置"只能出现一个数字",…
1. int: i.bit_length(): 把i这个数转换成二进制所需最少的位数 2. bool: (1) 1比True的效率更高 (2) 空字符串(什么都没有)为False:非空字符串为True (空格为非空字符串) 3. str的索引与切片 (1) 索引: 初始索引为0 (2) 切片: 切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则:顾头不顾尾) 倒着取时步长应为负 4. 字符串常用方法: (1) capitalize(): 首字母大写 (2) title()…
1.自行创建测试数据 对score表进行优化: 添加数据: 2.查询“生物”课程比“物理”课程成绩高的所有学生的学号: 为了方便做题,额外增加几条数据 查询: 3.查询平均成绩大于60分的同学的学号和平均成绩 4.查询所有同学的学号.姓名.选课数.总成绩 5.查询姓“李”的老师的个数 为了方便做题,额外增加几条数据 查询: 6.查询没学过“叶平”老师课的同学的学号.姓名 7.查询学过“001”并且也学过编号“002”课程的同学的学号.姓名 8.查询学过“叶平”老师所教的所有课的同学的学号.姓名…