1 Star 0 Fork 0

mosson/pyBook-tutorial

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
search_plus_index.json 28.45 KB
一键复制 编辑 原始数据 按行查看 历史
mossonli 提交于 2021-07-31 10:20 . 项目初始化
{"chapter/chapter01Python基础/1.1 Python的安装.html":{"url":"chapter/chapter01Python基础/1.1 Python的安装.html","title":"1.1 Python安装","keywords":"","body":"安装Python 1 下载 地址 www.baidu.como Copyright © pythonav.cn 2021 all right reserved,powered by Gitbook作者:李睦晨 2021-07-31 07:37:33 "},"chapter/chapter01Python基础/1.2 Pycharm的安装.html":{"url":"chapter/chapter01Python基础/1.2 Pycharm的安装.html","title":"1.2 Python安装","keywords":"","body":"安装Pycharm 1 下载 地址 www.baidu.com 第一模块 请导师考核前先看《导师行为指导》 3-5分钟总结第一模块学习内容+作业流程(作业可以看代码) 可以之前就跟学员说好这道题必考,叫学员总结好。 该题只是督促学员做好总结,以及作业是否有抄袭嫌疑。 学习内容可以推荐学员使用思维导图,作业可以画流程图来进行讲解。 第一套题 分别解释\"=\",\"==\",\"+=\"的含义(口述)(1分钟) 答案: \"=\":python中赋值操作 \"==\":判断数字或字符串是否相等 \"+=\":例如 a+=1 等于 a = a + 1 两个变量值的关系?(口述)(1分钟) n1 = 123456 n2 = n1 答案: n1和n2的数值相等,内存地址相等 n2的数值更改不会带动n1数值更改 请写出 “路飞学城” 分别用 utf-8 和 gbk 编码所占的位数(口述)(1分钟) 答案: “路飞学城”utf-8占用12个字节 “路飞学城”gbk占用8个字节 简述Python中的几种数据类型(口述)(1分钟) 答案: 数字,字符串,列表,元组,字典,集合 数据类型的可变与不可变分别有哪些?(口述)(1分钟) 答案: 可变类型: list 不可变类型:number, string,tuple, set 区分: 是否可以被hash, 可变类型是不可以被hash的 元祖,列表,字典有没有长度的限制?(口述)(1分钟) 答案: 现在,这三个数据是没有长度限制的,但是会受到用户使用的系统的限制。 eg: 32位:536870912 64位:1152921504606846975 列表li = ['alex','egon','yuan','wusir','666'](编程)(3分钟) 1.把666替换成999 2.获取\"yuan\"索引 3.假设不知道前面有几个元素,分片得到最后的三个元素( [-3:] ) 答案: 1, li[-1] = 999 2, li.index(\"yuan\") 3, li[-3:] 将字符串s = “www.luffycity.com”给拆分成列表:li=['www','luffycity','com'] (编程)(2分钟) 答案: print(s.split(\".\")) 对字典进行增删改查(编程)(5分钟) d = { \"Development\":\"开发小哥\", \"OP\":\"运维小哥\", \"Operate\":\"运营小仙女\", \"UI\":\"UI小仙女\" } 答案: 1, 增加: name : alex d[\"name\"] = \"alex\" 2, 修改: alex 改为 wusir d[\"name\"] = \"wusir\" 3, 删除: 删除 name 为 wusir d.pop(\"name\") 4, 查询: \"UI\":\"UI小仙女\" d[\"UI\"] 计算1+2+3...+98+99+100 (编程题)(10分钟) 对于等差公式,请直接否定掉,因为这是考核语法以及逻辑性转化成编程的思想。公式也可以让学员说一下。 答案: count = 0 for i in range(101): count += i print(count) 制作趣味模板程序(编程题)(5分钟) 需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实 如:敬爱可爱的xxx,最喜欢在xxx地方干xxx 答案: name = input(\"请输入姓名:\") address = input(\"请输入地点:\") hobby = input(\"请输入爱好:\") print(\"敬爱可爱的 %s, 最喜欢在%s地方干%s\" % (name, address, hobby)) 写一个三次认证(编程)(10分钟) 实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次 答案: username = ['seven', 'Alex'] password = '123' count = 0 while count 第二套题 解释'and','or','not'(口述) 答案: not –表示取反运算。 and –表示取与运算。 or –表示取或运算。 优先级是 not>and>or。 and从左到右计算表达式,若所有值均为真,则返回最后一个值,若存在假,返回第一个假值。 真 假 假 真 真 真 假 假 假 假 真 假 or 也是从左到右计算表达式,返回第一个为真的值 真 假 真 真 真 真 假 假 假 假 真 真 元祖和列表的区别(口述) 答案: 1, 两者的表达形式不一样 ,list 为 [], tuple 为(). 2,list 为 可变类型, tuple 为不可变类型 列举一堆布尔值为False的情况(口述) 答案: [],{},None,False,'',数字0 python2和python3对于long(长整形)的区别。(口述) 答案: python2 中数字类型分为 int(整型) 和 long(长整型)。 但是要看操作系统的位数32位 2**31之后就是长整型 64位 2**63 9223372036854775808L python3 中只有整型 元祖和列表的区别(口述)(该题目与第二题重复) 变量命名规范 ?(口述) 答案: 模块名,包名 :小写字母, 单词之间用户_分割。 类名:首字母大写。 全局变量: 大写字母, 单词之间用户_分割。 普通变量: 小写字母, 单词之间用户_分割。 函数: 小写字母, 单词之间用户_分割。 实例变量: 以_开头,其他和普通变量一样 。 私有实例变量(外部访问会报错): 以__开头(2个下划线),其他和普通变量一样 。 专有变量: __开头,__结尾,一般为python的自有变量(不要以这种变量命名)。 阐述一下unicode和utf-8的区别(或者unicode在python3的作用)(口述) 答案: 简单来说:Unicode 是「字符集」 UTF-8 是「编码规则」 其中:字符集:为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point)。 编码规则:将「码位」转换为字节序列的规则(编码/解码 可以理解为 加密/解密 的过程)。 广义的 Unicode 是一个标准,定义了一个字符集以及一系列的编码规则,即 Unicode 字符集和 UTF-8、UTF-16、UTF-32 等等编码…… Unicode 字符集为每一个字符分配一个码位,例如「知」的码位是 30693,记作 U+77E5(30693 的十六进制为 0x77E5)。 UTF-8 顾名思义,是一套以 8 位为一个编码单位的可变长编码。会将一个码位编码为 1 到 4 个字节:U+ 0000 ~ U+ 007F: 0XXXXXXX U+ 0080 ~ U+ 07FF: 110XXXXX 10XXXXXX U+ 0800 ~ U+ FFFF: 1110XXXX 10XXXXXX 10XXXXXX U+10000 ~ U+1FFFF: 11110XXX 10XXXXXX 10XXXXXX 10XXXXXX 根据上表中的编码规则,之前的「知」字的码位 U+77E5 属于第三行的范围: 7 7 E 5 0111 0111 1110 0101 二进制的 77E5 -------------------------- 0111 011111 100101 二进制的 77E5 1110XXXX 10XXXXXX 10XXXXXX 模版(上表第三行) 11100111 10011111 10100101 代入模版 E 7 9 F A 5 这就是将 U+77E5 按照 UTF-8 编码为字节序列 E79FA5 的过程。反之亦然。 内存空间的考核。(口述) 问修改前后info的id是否改变 问修改前后info['alex']['hobbies']的id是否改变 info={ 'egon':{'pwd':'123','hobbies':['play','music','read']}, 'alex':{'pwd':'1234','hobbies':['music','read']}, 'wupeiqi':{'pwd':'135','hobbies':['read',]}, } info['alex']['hobbies'].append('play') 切割字符串s = \"luffycity\"\"luffy\",\"city\"(编程) 答案: print(s[:5]) print(s[-4:]) 猜年龄游戏(编程题)这道题视频有讲解 求1~100间所有偶数的和(亦可奇数和,使用while循环写)(编程题)。 答案: 1, count = 0 for i in range(1, 100): if i % 2 == 0: count += i print(count) 2, count = 0 for i in range(0, 100, 2): count += i print(count) 3 , sum([i for i in range(1, 100) if i%2==0]) 从键盘接收一百分制成绩(0~100),要求输出其对应的成绩等级A~E。其中,90分以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'。(编程题) 答案: p = int(input(\"请输入分数:\")) if p >= 90: print(\"A\") elif 80 第三套题 \"is\"和“==”的区别(口述) is是对比地址,==是对比值 声明变量注意事项有哪些?(口述) 答案: 模块名,包名 :小写字母, 单词之间用户_分割。 类名:首字母大写。 全局变量: 大写字母, 单词之间用户_分割。 普通变量: 小写字母, 单词之间用户_分割。 函数: 小写字母, 单词之间用户_分割。 实例变量: 以_开头,其他和普通变量一样 。 私有实例变量(外部访问会报错): 以__开头(2个下划线),其他和普通变量一样 。 专有变量: __开头,__结尾,一般为python的自有变量(不要以这种变量命名)。 深浅copy-引用和copy(),deepcopy()的区别(口述) 答案: 深浅拷贝,即可用于序列,也可用于字典 >>> import copy >>> X = copy.copy(Y) #浅拷贝:只拷贝顶级的对象,或者说:父级对象 >>> X = copy.deepcopy(Y) #深拷贝:拷贝所有对象,顶级对象及其嵌套对象。或者说:父级对象及其子对象 各个数据类型分别是有序的?还是无序的?(口述) 答案: 可变类型: list 不可变类型:number, string,tuple, set 区分: 是否可以被hash, 可变类型是不可以被hash的 输入一年份,判断该年份是否是闰年并输出结果。(该程序可以重复使用 使用while True)(编程题)注:凡符合下面两个条件之一的年份是闰年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。 答案: year = int(input(\"请输入年份:\")) if year % 4 == 0 and year % 100 != 0 or year % 400 == 0: print(\"%s 年是闰年\" % year) else: print(\"%s 年不是闰年\" % year) 有如下字符串:n = \"路飞学城\"(编程题) 将字符串转换成utf-8的字符编码,再将转换的字节重新转换为utf-8的字符编码 将字符串转换成gbk的字符编码,再将转换的字节重新转换为utf-8的字符编码 将列表['alex', 'steven', 'egon'] 中的每一个元素使用 ‘_’ 连接为一个字符串(编程) 答案: s = \"\" n = ['alex', 'steven', 'egon'] for i in n: s += i print(\"_\".join(s)) 自定义两个,并求交集,合集,差集。(编程) a = {1,2,3,4,5} b = {2,4,6,8,10} | 数学符号 | python符号 | 代表含义 | | :-- | :-- | :-- | | - 或 \\ | - | 差级,相对补集 | | ∩ | & | 交集 | | ∪ | | | 合集,并集 | | ≠ | != | 不等于 | | = | == | 等于 | | ∈ | in | 是成员关系 | ` # 交集 print(a & b) # 并集 print(a | b) # 差集 print(a-b) ` 求100以内不能被3整除的所有数,并把这些数字放在列表sum3=[]里,并求出这些数字的总和和平均数。(计算的时候告诉学员,sum是一个关键词,不能当作变量)(编程) 答案: sum3 = [] count = 0 for i in range(101): if i % 3 != 0: sum3.append(i) count += i print(count) print(count/3) 根据字典内容打印出下面的形式(编程) 可以不打印工整对齐的效果,主要是让学员获取key和value。 {\"Development\":\"开发小哥\",\"OP\":\"运维小哥\",\"Operate\":\"运营小仙女\",\"UI\":\"UI小仙女\"} 效果如下: 删除了UI 修改了Operate Development --- 开发小哥 OP --- 运维小哥 Operate --- 小仙女 假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?(编程题) 答案: money = 10000 rate = 0.0325 years = 0 while money 对列表进行增删改查(查可以是索引,值是否存在列表当中)。(编程) li = ['alex','egon','wusir','wen','jing'] 答案: li = ['alex', 'egon', 'wusir', 'wen', 'jing'] >> 增加 li.append(\"yuan\") print(li) >> 删除 li.pop(0) li.remove(\"alex\") del li[0] >> 修改 li[3] = \"li\" >> 查询 print(li.index(\"egon\")) 剩余题 1. 猜数游戏。预设一个0~9之间的整数,让用户猜一猜并输入所猜的数,如果大于预设的数,显示“太大”;小于预设的数,显示“太小”,如此循环,直至猜中该数,显示“恭喜!你猜中了!(编程题) 2. 编写一个python程序,输入两个数,比较它们的大小并输出其中较大者。(编程题) 3. 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?(编程题) 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 程序源代码: 4. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。(编程题) 5. 求100以内的素数和。(编程题) 6. 二进制,十进制,十六进制互相转换(计算题,让学员使用计算器,别用编程的内置方法) 7. python2和python3的默认字符编码(口述) 8. 浮点数转换整形(口述) 9. 计算\"21days\"字符串的长度。(口述/编程) 10. 元祖,列表,字典有没有长度的限制?(口述) 11. 集合的特性(口述) 12. 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?(编程) xx Copyright © pythonav.cn 2021 all right reserved,powered by Gitbook作者:李睦晨 2021-07-31 07:49:06 "},"chapter/chapter02Python函数/2.1 函数的概念.html":{"url":"chapter/chapter02Python函数/2.1 函数的概念.html","title":"2.1 Python安装","keywords":"","body":"第八章主要内容 第八章:线程、进程、队列、IO多路模型 操作系统工作原理介绍、线程、进程演化史、特点、区别、互斥锁、信号、事件、join、GIL、进程间通信、管道、队列。 生产者消息者模型、异步模型、IO多路复用模型、select\\poll\\epoll 高性能IO模型源码实例解析、高并发FTP server开发 一、问答题 1、简述计算机操作系统中的“中断”的作用? 2、简述计算机内存中的“内核态”和“用户态”; 3、什么是进程? 4、什么是线程? 5、简述程序的执行过程; 6、什么是“系统调用”? 7、threading模块event和condition的区别; 8、进程间通信方式有哪些? 9、简述你对管道、队列的理解; 10、请简述你对join、daemon方法的理解,举出它们在生产环境中的使用场景; 11、请简述IO多路复用模型的工作原理; 12、threading中Lock和RLock的相同点和不同点; 13、什么是select,请简述它的工作原理,简述它的优缺点; 14、什么是epoll,请简述它的工作原理,简述它的优缺点; 15、简述select和epoll的区别; 16、简述多线程和多进程的使用场景; 17、请分别简述threading.Condition、threading.event、threading.semaphore、的使用场景; 18、假设有一个名为threading_test.py的程序里有一个li = [1, 2, 3, 4]的列表,另有a,b两个函数分别往该列表中增加元素,a函数需要修改li之前需要获得threading.Lock对象,b函数不需要,请问当线程t1执行a函数获取到Lock对象之后并没有release该对象的情况下,线程t2执行b函是否可以修改li,为什么? 19、简述你对Python GIL的理解; 20、请列举你知道的进程间通信方式; 21、什么是同步I/O,什么是异步I/O? 22、什么是管道,如果两个进程尝试从管道的同一端读写数据,会出现什么情况? 23、为什么要使用线程池/进程池? 24、如果多个线程都在等待同一个锁被释放,请问当该锁对象被释放的时候,哪一个线程将会获得该锁对象? 25、import threading;s = threading.Semaphore(value=-1)会出现什么情况? 26、请将二进制数10001001转化为十进制; 27、某进程在运行过程中需要等待从磁盘上读入数据,此时该进程的状态将发生什么变化? 28、请问selectors模块中DefaultSelector类的作用是什么; 29、简述异步I/O的原理; 30、请问multiprocessing模块中的Value、Array类的作用是什么?举例说明它们的使用场景 31、请问multiprocessing模块中的Manager类的作用是什么?与Value和Array类相比,Manager的优缺点是什么? 32、请说说你对multiprocessing模块中的Queue().put(), Queue.put_nowait(), Queue.get(), Queue.get_nowait()的理解; 33、什么是协程?使用协程与使用线程的区别是什么? 34、asyncio的实现原理是什么? 二、编程题 1、请写一个包含10个线程的程序,主线程必须等待每一个子线程执行完成之后才结束执行,每一个子线程执行的时候都需要打印当前线程名、当前活跃线程数量以及当前线程名称; 2、请写一个包含10个线程的程序,并给每一个子线程都创建名为\"name\"的线程私有变量,变量值为“Alex”; 3、请使用协程写一个消费者生产者模型; 4、写一个程序,包含十个线程,子线程必须等待主线程sleep 10秒钟之后才执行,并打印当前时间; 5、写一个程序,包含十个线程,同时只能有五个子线程并行执行; 6、写一个程序 ,包含一个名为hello的函数,函数的功能是打印字符串“Hello, World!”,该函数必须在程序执行30秒之后才开始执行(不能使用time.sleep()); 7、写一个程序,利用queue实现进程间通信; 8、写一个程序,利用pipe实现进程间通信; 9、使用selectors模块创建一个处理客户端消息的服务器程序; 10、使用socketserver创建服务器程序时,如果使用fork或者线程服务器,一个潜在的问题是,恶意的程序可能会发送大量的请求导致服务器崩溃,请写一个程序,避免此类问题; 11、请使用asyncio实现一个socket服务器端程序; 第九章主要内容 1、数据库介绍、类型、特性 2、MySQL数据库安装、连接、启动、停止 3、表字段类型介绍、主键约束、表创建语句 4、常用增删改查语句、分组、聚合 5、外键管理、unique字段、表结构修改语法 6、跨表查询,inner join、left join、right join、full join语法 7、复杂SQL语句如group by、子查询、函数的使用 8、索引原理及作用、普通索引、多列索引、唯一索引、全文索引等 9、基于hash&b+树索引的实现原理,索引的优缺点剖析 10、事务原理,ACID特性,应用场景讲解 11、事务回滚 12、触发器的特性,应用场景 13、触发器的增删改查方法 14、存储过程的作用及应用场景 15、创建存储过程,参数传递,流程控制语句if\\while\\repeat\\loop等,动态SQL的创建 16、视图的作用及使用场景,视图的增删改查 17、数据库权限管理,用户管理 18、数据库备份命令及工具讲解 19、基于不同业务的数据库表结构设计、性能优化案例 20、pymysql模块介绍和使用 一、问答题 1、说说你所知道的MySQL数据库存储引擎,InnoDB存储引擎和MyISM存储引擎的区别? 主要有 MyISM:MyISAM存储引擎:不支持事务、也不支持外键,优势是访问速度快,对事务完整性没有 要求或者以select,insert为主的应用基本上可以用这个引擎来创建表 InnoDB:支持事务 Memory:Memory存储引擎使用存在于内存中的内容来创建表。每个memory表只实际对应一个磁盘文件,格式是.frm。memory类型的表访问非常的快,因为它的数据是放在内存中的,并且默认使用HASH索引,但是一旦服务关闭,表中的数据就会丢失掉。 Merge:Merge存储引擎是一组MyISAM表的组合,这些MyISAM表必须结构完全相同,merge表本身并没有数据,对merge类型的表可以进行查询,更新,删除操作,这些操作实际上是对内部的MyISAM表进行的。 MyISM和InnoDB的区别 InnoDB支持事务,而MyISM不支持事务 InnoDB支持行级锁,而MyISM支持表级锁 InnoDB支持外键,而MyISM不支持 InnoDB支持全文索引,而MyISM不支持 InnoDB是索引组织表,MyISM是堆表 (堆表的数据是随机插入的,索引组织表的数据是有序的) 2、MySQL中char和varchar的区别,varchar(50)和char(50)分别代表什么意思? 3、MySQL中int类型存储多少个字节? int存储4字节,最小值-2147483648,最大值21477483647 4、主键具有什么特征? 唯一且非空 5、简述你对inner join、left join、right join、full join的理解; 6、concat, group_concat函数的作用是什么? 7、请介绍事务的实现原理; 8、索引的本质是什么?索引有什么优点,缺点是什么? 索引是帮助MySQL高效获取数据的数据结构。因此,索引的本质是一种数据结构。 在数据之外,数据库系统还可以维护满足特定查找算法的数据结构,这些数据结构以某种方式指向真实数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。 优点: 1、提高数据检索效率,降低数据库的IO成本; 2、通过索引对数据进行排序,降低了数据排序的成本,降低了CPU的利用率; 缺点: 1、索引实际上也是一张表,索引会占用一定的存储空间; 2、更新数据表的数据时,需要同时维护索引表,因此,会降低insert、update、delete的速度; 9、哪些情况下需要创建索引,哪些情况下不需要创建索引? 1、主键自动创建唯一非空索引; 2、频繁作为查询条件的字段应该创建索引; 3、频繁更新的字段不适合简历索引,因为每次更新不仅仅更新数据表同时还会更新索引表; 4、查询中经常排序的字段,可以考虑创建索引; 5、如果某个字段的重复数据较多,不适合创建普通索引; 10、请分别介绍ACID代表的意思,什么业务场景需要支持事务,什么业务场景不需要支持事务? 11、什么是触发器,请简述触发器的使用场景? 12、什么是存储过程,存储过程的作用是什么? 13、什么是视图,简单介绍视图的作用和使用场景? 14、如何查看SQL语句的执行计划? 15、在你本地数据库中查看select from student*的执行计划,并解释每个字段分别代表什么意思? 16、数据备份分为哪几种类型?增量备份和差异备份的区别是什么? 17、请介绍select语句的执行顺序; 18、请问存储引擎MyISM和InnoDB的适合什么样的使用场景? 19、请举出MySQL中常用的几种数据类型; 20、什么情况下会产生笛卡尔乘积,如何避免? 21、请列举MySQL中常用的函数; 22、请说明group by的使用场景; 23、请介绍hash索引和B+树索引的实现原理; 哈希索引基于哈希表实现,只有精确匹配索引的所有列的查询才有效。对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码,哈希码是一个较小的值,并且不同键值的行计算出来的哈希码也不一样。哈希索引将所有的哈希码存储在索引中,同时在哈希表中保存指向每个数据行的指针。也就是说,由于哈希查找比起B-Tree索引,其本身对于单行查询的时间复杂度更低,有了哈希索引后明显可加快单行查询速度。 但是哈希索引也有它自己的限制: 哈希索引只包含哈希值和行指针,而不存储字段值,所以不能使用索引中的值来避免读取行。不过,访问内存中的行的速度很快,所以大部分情况下这一点对性能的影响并不明显。 哈希索引数据并不是按照索引值顺序存储的,所以也就无法用于排序。 哈希索引也不支持部分索引列匹配查找,因为哈希索引始终是使用索引列的全部内容来计算哈希值的。例如,在数据列(A, B)上建立哈希索引,如果查询只有数据列A,则无法使用该索引。 哈希索引只支持等值比较查询,包括=、in()、。不支持任何范围查询,例如where price > 100。 访问哈希索引的数据非常快,除非有很多哈希冲突。如果哈希冲突很多的话,一些索引维护操作的代价也很高。 B+树索引是B树索引的变体,本质上也是多路平衡查找树 二、编程题 1、创建一个表student,包含ID(学生学号),sname(学生姓名),gender(性别),credit(信用卡号),四个字段,要求:ID是主键,且值自动递增,sname是可变长字符类型,gender是枚举类型, credit是可变长字符类型; 2、在上面的student表中增加一个名为class_id的外键,外键引用class表的cid字段; 3、向该表新增一条数据,ID为1,学生姓名为alex,性别女,修改ID为1的学生姓名为wupeiqi,删除该数据; 4、查询student表中,每个班级的学生数; 5、修改credit字段为unique属性; 6、请使用命令在你本地数据库中增加一个用户,并给该用户授予创建表的权限; 7、请使用pymsql模块连接你本地数据库,并向student表中插入一条数据; 8、请使用mysqldump命令备份student表; 9、创建一张名为student_insert_log的表,要求每次插入一条新数据到student表时,都向student_insert_log表中插入一条记录,记录student_id, insert_time; 10、创建一张名为student_update_log的表,要求每次更新student表中的记录时,都向student_update_log表中插入一条记录,记录student_id, update_time; Copyright © pythonav.cn 2021 all right reserved,powered by Gitbook作者:李睦晨 2021-07-31 10:16:37 "},"Gitbook.html":{"url":"Gitbook.html","title":"Writing is nice","keywords":"","body":"insert-logo 将自己的logo图片插入到导航栏上方中 \"page-footer\" 页脚 \"insert-logo\", \"-sharing\", \"sharing-plus\", \"expandable-chapters-small\", \"back-to-top-button\" \"toggle-chapters\" \"insert-logo\": { \"url\": \"./image/logo/LOGO.png\", \"style\": \"background: none; max-height: 100px; min-height: 30px\" }, \"sharing\": { \"douban\": false, \"facebook\": true, \"google\": false, \"hatenaBookmark\": false, \"instapaper\": false, \"line\": false, \"linkedin\": true, \"messenger\": false, \"pocket\": true, \"qq\": false, \"qzone\": false, \"stumbleupon\": false, \"twitter\": true, \"viber\": false, \"vk\": false, \"weibo\": false, \"whatsapp\": false, \"all\": [ \"facebook\", \"google\", \"twitter\", \"weibo\", \"instapaper\", \"linkedin\", \"pocket\", \"stumbleupon\" ] }, \"expandable-chapters-small\": {}, \"page-footer\": { \"description\": \"modified at\", \"signature\": \"Aleen\", \"wisdom\": \"More than a coder, more than a designer\", \"format\": \"yyyy-MM-dd hh:mm:ss\", \"copyright\": \"Copyright © aleen42\", \"timeColor\": \"#666\", \"copyrightColor\": \"#666\", \"utcOffset\": \"8\", \"isShowQRCode\": true, \"isShowIssues\": true, \"baseUri\": \"https://wiki.aleen42.com/\", \"repo\": \"aleen42/PersonalWiki\", \"issueNum\": \"8\", \"token\": \"\", \"style\": \"normal\" }, \"github\": { \"url\": \"https://github.com\" }, \"flexible-alerts\": { \"style\": \"callout\", \"comment\": { \"label\": \"Comment\", \"icon\": \"fa fa-comments\", \"className\": \"info\" } } { \"root\": \".\", \"author\": \"Mosson\", \"title\": \"Mosson Gitbook\", \"language\": \"zh-hans\", \"description\": \"This is gitbook\", \"isbn\": \"000-0-00-000000-0\", \"direction\": \"ltr\", \"gitbook\": \">=3.2.3\", \"structure\": { \"readme\": \"README.md\", \"summary\": \"SUMMARY.md\", \"glossary\": \"GLOSSARY.md\" }, \"variables\": { \"blog\": \"https://blog.csdn.net/ming_97y\" }, \"links\": { \"sidebar\": { \"Blog\": \"https://www.cnblogs.com/mosson/\", \"Github\": \"https://www.cnblogs.com/mosson/\" } }, \"pdf\": { \"pageNumbers\": true, \"fontFamily\": \"Arial\", \"fontSize\": 12, \"paperSize\": \"a4\", \"margin\": { \"right\": 62, \"left\": 62, \"top\": 56, \"bottom\": 56 } }, \"plugins\": [ \"chapter-fold\" ], \"pluginsConfig\": { \"chapter-fold\":{} } } { \"root\": \".\", \"author\": \"Mosson\", \"title\": \"Mosson Gitbook\", \"language\": \"zh-hans\", \"description\": \"This is gitbook\", \"isbn\": \"000-0-00-000000-0\", \"direction\": \"ltr\", \"gitbook\": \">=3.2.3\", \"plugins\": [ \"chapter-fold\" ], \"pluginsConfig\": { \"chapter-fold\":{} } } Copyright © pythonav.cn 2021 all right reserved,powered by Gitbook作者:李睦晨 2021-07-31 10:06:33 "},"./":{"url":"./","title":"Readme","keywords":"","body":"Introduction Copyright © pythonav.cn 2021 all right reserved,powered by Gitbook作者:李睦晨 2021-07-30 17:44:32 "}}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/mosson/pyBook-tutorial.git
git@gitee.com:mosson/pyBook-tutorial.git
mosson
pyBook-tutorial
pyBook-tutorial
main

搜索帮助