python基础
day1 python初识
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1. 计算机基础(cpu,内存,硬盘,操作系统) 2. Python出生于应用 3. python发展史 4. 编程语言分类 5. python优缺点 6. python环境 7. 运行Python代码 8. 变量 9. 常量 1. 注释 11. 基础数据类型初始 12. 程序交互input 13. 流程控制语句if.
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1、简述变量命名规范 2、name = input(“>>>”) name变量是什么数据类型? 3、if条件语句的基本结构? 4、用print打印出下面内容: ⽂能提笔安天下, 武能上⻢定乾坤. ⼼存谋略何⼈胜, 古今英雄唯是君. 5、利用if语句写出猜大小的游戏: 设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确。 6、提⽰⽤户输入他的年龄, 程序进⾏判断. 如果⼩于10, 提⽰⼩屁孩, 如果⼤于10, ⼩于 20, 提⽰青春期叛逆的⼩屁孩. 如果⼤于20, ⼩于30. 提⽰开始定性, 开始混社会的⼩ 屁孩⼉, 如果⼤于30, ⼩于40. 提⽰看老⼤不⼩了, 赶紧结婚⼩屁孩⼉. 如果⼤于40, ⼩ 于50. 提⽰家⾥有个不听话的⼩屁孩⼉. 如果⼤于50, ⼩于60. 提⽰⾃⼰⻢上变成不听 话的老屁孩⼉.如果⼤于60, ⼩于70. 提⽰活着还不错的老屁孩⼉. 如果⼤于70, ⼩于 90. 提⽰⼈⽣就快结束了的⼀个老屁孩⼉. 如果⼤于90以上. 提⽰. 再⻅了这个世界. 7、单⾏注释以及多⾏注释? 8、简述你所知道的Python3x和Python2x的区别? 9、提⽰⽤户输入⿇花藤. 判断⽤户输入的对不对. 如果对, 提⽰真聪明, 如果不对, 提⽰你 是傻逼么
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1,变量的命名规范。 2,单行注释,多行注释。
day2 python初识
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1. while循环 2. 格式化输出 3. 运算符 4. 编码初识
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1、判断下列逻辑语句的True,False. 1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 2)not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 2、求出下列逻辑语句的值。 1),8 or 3 and 4 or 2 and 0 or 9 and 7 2),0 or 2 and 3 and 4 or 6 and 0 or 3 3、下列结果是什么? 1)、6 or 2 > 1 2)、3 or 2 > 1 3)、0 or 5 < 4 4)、5 < 4 or 3 5)、2 > 1 or 6 6)、3 and 2 > 1 7)、0 and 3 > 1 8)、2 > 1 and 3 9)、3 > 1 and 0 10)、3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2 4、while循环语句基本结构? 5、利用if语句写出猜大小的游戏: 设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确,然后退出循环。 6、在5题的基础上进行升级: 给用户三次猜测机会,如果三次之内猜测对了,则显示猜测正确,退出循环,如果三次之内没有猜测正确,则自动退出循环,并显示‘太笨了你....’。 7、使用while循环输出 1 2 3 4 5 6 8 9 10 8、求1-100的所有数的和(三种方法) 9、输出 1-100 内的所有奇数(两种方法) 10、输出 1-100 内的所有偶数(两种方法) 11、求1-2+3-4+5 ... 99的所有数的和 12、⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化) 13、简述ASCII、Unicode、utf-8编码关系? 14、简述位和字节的关系? 15、“⽼男孩”使⽤UTF-8编码占⽤⼏个字节?使⽤GBK编码占⼏个字节?
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1. Bit,Bytes,KB,MB,GB,TB之间的转换关系。 2. Unicode,utf-8,GBK,每个编码英文,中文,分别用几个字节表示。
day3 初识数据类型
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1. 基础数据类型 总览 2. int 3. bool 4. str 5. for循环
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1,有变量name = "aleX leNb" 完成如下操作: 1) 移除 name 变量对应的值两边的空格,并输出处理结果 2) 移除name变量左边的"al"并输出处理结果 3) 移除name变量右面的"Nb",并输出处理结果 4) 移除name变量开头的a"与最后的"b",并输出处理结果 5) 判断 name 变量是否以 "al" 开头,并输出结果 6) 判断name变量是否以"Nb"结尾,并输出结果 7) 将 name 变量对应的值中的 所有的"l" 替换为 "p",并输出结果 8) 将name变量对应的值中的第一个"l"替换成"p",并输出结果 9) 将 name 变量对应的值根据 所有的"l" 分割,并输出结果。 10) 将name变量对应的值根据第一个"l"分割,并输出结果。 11) 将 name 变量对应的值变大写,并输出结果 12) 将 name 变量对应的值变小写,并输出结果 13) 将name变量对应的值首字母"a"大写,并输出结果 14) 判断name变量对应的值字母"l"出现几次,并输出结果 15) 如果判断name变量对应的值前四位"l"出现几次,并输出结果 16) 从name变量对应的值中找到"N"对应的索引(如果找不到则报错),并输出结果 17) 从name变量对应的值中找到"N"对应的索引(如果找不到则返回-1)输出结果 18) 从name变量对应的值中找到"X le"对应的索引,并输出结果 19) 请输出 name 变量对应的值的第 2 个字符? 20) 请输出 name 变量对应的值的前 3 个字符? 21) 请输出 name 变量对应的值的后 2 个字符? 22) 请输出 name 变量对应的值中 "e" 所在索引位置? 2,有字符串s = "123a4b5c" 1)通过对s切片形成新的字符串s1,s1 = "123" 2)通过对s切片形成新的字符串s2,s2 = "a4b" 3)通过对s切片形成新的字符串s3,s3 = "1345" 4)通过对s切片形成字符串s4,s4 = "2ab" 5)通过对s切片形成字符串s5,s5 = "c" 6)通过对s切片形成字符串s6,s6 = "ba2" 3,使用while和for循环分别打印字符串s="asdfer"中每个元素。 4,使用for循环对s="asdfer"进行循环,但是每次打印的内容都是"asdfer"。 5,使用for循环对s="abcdefg"进行循环,每次打印的内容是每个字符加上sb, 例如:asb, bsb,csb,...gsb。 6,使用for循环对s="321"进行循环,打印的内容依次是:"倒计时3秒","倒计时2秒","倒计时1秒","出发!"。 7,实现一个整数加法计算器(两个数相加): 如:content = input("请输入内容:") 用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算。 8,升级题:实现一个整数加法计算器(多个数相加): 如:content = input("请输入内容:") 用户输入:5+9+6 +12+ 13,然后进行分割再进行计算。 9,计算用户输入的内容中有几个整数(以个位数为单位)。 如:content = input("请输入内容:") # 如fhdal234slfh98769fjdla 10、写代码,完成下列需求: 用户可持续输入(用while循环),用户使用的情况: 输入A,则显示走大路回家,然后在让用户进一步选择: 是选择公交车,还是步行? 选择公交车,显示10分钟到家,并退出整个程序。 选择步行,显示20分钟到家,并退出整个程序。 输入B,则显示走小路回家,并退出整个程序。 输入C,则显示绕道回家,然后在让用户进一步选择: 是选择游戏厅玩会,还是网吧? 选择游戏厅,则显示 ‘一个半小时到家,爸爸在家,拿棍等你。’并让其重新输入A,B,C选项。 选择网吧,则显示‘两个小时到家,妈妈已做好了战斗准备。’并让其重新输入A,B,C选项。 11、写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和? 16、制作趣味模板程序需求:等待⽤户输⼊名字、地点、爱好,根据⽤户的名字和爱好进⾏任意现实 如:敬爱可亲的xxx,最喜欢在xxx地⽅⼲xxx 17、等待⽤户输⼊内容,检测⽤户输⼊内容中是否包含敏感字符?如果存在敏感字符提示“存在敏感字符请重新输⼊”,并允许⽤户重新输⼊并打印。敏感字符:“⼩粉嫩”、“⼤铁锤”
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
分别用while,for循环输出字符串s = input("你想输入的内容")的每一个字符。
day4 数据类型
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1. 列表 2. 列表的索引、切片、步长 3. 列表的常用操作 增 删 改 查 其他操作 4. 列表的嵌套 5. range
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1,写代码,有如下列表,按照要求实现每一个功能 li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] 1)计算列表的长度并输出 2)列表中追加元素"seven",并输出添加后的列表 3)请在列表的第1个位置插入元素"Tony",并输出添加后的列表 4)请修改列表第2个位置的元素为"Kelly",并输出修改后的列表 5)请将列表l2=[1,"a",3,4,"heart"]的每一个元素添加到列表li中,一行代码实现,不允许循环添加。 6)请将字符串s = "qwert"的每一个元素添加到列表li中,一行代码实现,不允许循环添加。 7)请删除列表中的元素"eric",并输出添加后的列表 8)请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表 9)请删除列表中的第2至4个元素,并输出删除元素后的列表 10)请将列表所有得元素反转,并输出反转后的列表 11)请计算出"alex"元素在列表li中出现的次数,并输出该次数。 2,写代码,有如下列表,利用切片实现每一个功能 li = [1, 3, 2, "a", 4, "b", 5,"c"] 1)通过对li列表的切片形成新的列表l1,l1 = [1,3,2] 2)通过对li列表的切片形成新的列表l2,l2 = ["a",4,"b"] 3)通过对li列表的切片形成新的列表l3,l3 = ["1,2,4,5] 4)通过对li列表的切片形成新的列表l4,l4 = [3,"a","b"] 5)通过对li列表的切片形成新的列表l5,l5 = ["c"] 6)通过对li列表的切片形成新的列表l6,l6 = ["b","a",3] 3,写代码,有如下列表,按照要求实现每一个功能。 lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"] 1)将列表lis中的"tt"变成大写(用两种方式)。 2)将列表中的数字3变成字符串"100"(用两种方式)。 3)将列表中的字符串"1"变成数字101(用两种方式)。 4,请用代码实现: li = ["alex", "eric", "rain"] 利用下划线将列表的每一个元素拼接成字符串"alex_eric_rain" 5,利用for循环和range打印出下面列表的索引。 li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] 6,利用for循环和range找出100以内所有的偶数并将这些偶数插入到一个新列表中。 7,利用for循环和range 找出50以内能被3整除的数,并将这些数插入到一个新列表中。 8,利用for循环和range从100~1,倒序打印。 9,利用for循环和range从100~10,倒序将所有的偶数添加到一个新列表中,然后对列表的元素进行筛选,将能被4整除的数留下来。 10,利用for循环和range,将1-30的数字一次添加到一个列表中,并循环这个列表,将能被3整除的数改成*。 11,查找列表li中的元素,移除每个元素的空格,并找出以"A"或者"a"开头,并以"c"结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。 li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"] 12,开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符: 敏感词列表 li = ["苍老师", "东京热", "武藤兰", "波多野结衣"] 则将用户输入的内容中的敏感词汇替换成等长度的*(苍老师就替换***),并添加到一个列表中;如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。 13,有如下列表 li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"] 循环打印列表中的每个元素,遇到列表则再循环打印出它里面的元素。 我想要的结果是: 1 3 4 "alex" 3 7, 8 "taibai" 5 ritian
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1,将列表的增删改查不同的方法全部写出来, 例如:增:有三种,append:在后面添加。Insert按照索引添加, expend:迭代着添加。 2,默写第,13题的实现的代码。
day5 数据类型
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1. 字典的增删改查以及其他操作 2. 字典的嵌套
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1,有如下变量(tu是个元祖),请实现要求的功能 tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44]) a. 讲述元祖的特性 b. 请问tu变量中的第一个元素 "alex" 是否可被修改? c. 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 "Seven" d. 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 "Seven" 2, 字典dic,dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]} a.请循环输出所有的key b.请循环输出所有的value c. 请循环输出所有的key和value d. 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典 e. 请在修改字典中 "k1" 对应的值为 "alex",输出修改后的字典 f. 请在k3对应的值中追加一个元素 44,输出修改后的字典 g. 请在k3对应的值的第 1 个位置插入个元素 18,输出修改后的字典 3,av_catalog = { "欧美":{ "www.youporn.com": ["很多免费的,世界最大的","质量一般"], "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"], "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"], "x-art.com":["质量很高,真的很高","全部收费,屌丝请绕过"] }, "日韩":{ "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"] }, "大陆":{ "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"] } } e,给 '大陆' 对应的字典添加一个键值对 '1048' :['一天就封了'] f,删除此"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"]键值对。 g,给此["全部免费,真好,好人一生平安","服务器在国外,慢"]列表的第一个元素,加上一句话:'可以爬下来' 4、有字符串"k:1|k1:2|k2:3|k3:4" 处理成字典 {'k':1,'k1':2....} 5、元素分类 有如下值li= [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。 即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表} 6、输出商品列表,用户输入序号,显示用户选中的商品 商品列表: goods = [{"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ] 要求: 1:页面显示 序号 + 商品名称 + 商品价格,如: 1 电脑 1999 2 鼠标 10 … 2:用户输入选择的商品序号,然后打印商品名称及商品价格 3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。 4:用户输入Q或者q,退出程序。
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1. 字典的增删改查。 2. 过滤敏感字符代码的默写。 li = ["苍老师","东京热","武藤兰","波多野结衣"] l1 = [] comment = input('请输入评论>>>') for i in li: comment = comment.replace(i,'*'*len(i)) l1.append(comment) print(l1)
day6 数据类型和编码
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1. is == id 2. 代码块 3. 小数据池 4. 编码二
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1,使用循环打印以下效果: 1: * ** *** **** ***** 2: ***** **** *** ** * 3: * *** ***** ******* ********* 2, 输入一个广告标语. 判断这个广告是否合法. 根据最新的广告法来判断. 广告法内容过多. 我们就判断是否包含'最', '第一', '稀缺', '国家级'等字样. 如果包含.提示:广告不合法. 例如, (1)老男孩python世界第一. 不合法 (2)今年过年不收礼啊. 收礼只收脑白金. 合法 3,敲七游戏. 从1开始数数. 遇到7或者7的倍数(不包含17,27,这种数)要在桌上敲一下. 编程来完成敲七. 给出一个任意的数字n. 从1开始数. 数到n结束. 把每个数字都放在列表中, 在数的过程中出现7或者7的倍数(不包含17,27,这种数).则向列表中添加一个'咣' # 例如, 输入10. # lst = [1, 2, 3, 4, 5, 6, '咣', 8, 9, 10] 4,电影投票. 程序先给出一个目前正在上映的电影列表. 由用户给每一个电影投票. 最终,将该用户投票信息公布出来 。(此题明天可以继续做) 要求: 1,用户输入序号,进行投票。比如输入序号 1,给黄金兄弟投票1。 2,每次投票成功,显示给哪部电影投票成功。 3,退出投票程序后,要显示最终每个电影的投票数。 lst = ['黄金兄弟', '解救吾先生', '美国往事', '西西里的美丽传说'] 结果: {'黄金兄弟': 99, '解救吴先生': 80, '美国往事': 6, '西西里的美丽传说': 23}
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
day7 集合和深浅拷贝
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1. 基础数据类型补充 2. 集合set 3. 深浅copy
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1、把列表中所有姓周的人的信息删掉(升级题:此题有坑, 请慎重): lst = ['周老二', '周星星', '麻花藤', '周扒皮'] 结果: lst = ['麻花藤'] 2、车牌区域划分, 现给出以下车牌. 根据车牌的信息, 分析出各省的车牌持有量. (升级题) cars = ['鲁A32444','鲁B12333','京B8989M','黑C49678','黑C46555','沪 B25041'.....] locals = {'沪':'上海', '黑':'黑龙江', '鲁':'山东', '鄂':'湖北', '湘':'湖南', '京': '北京'.....} 结果: {'山东': 2, '北京': 1, '黑龙江': 2, '上海': 1} 3、干掉主播. 现有如下主播收益信息: zhubo = {'卢本伟':522000, '冯提莫':189999, '金老板': 99999, '吴老板': 250000, 'alex': 126} 1. 计算主播平均收益值 2. 干掉收益小于平均值的主播 3. 干掉卢本伟
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
简述什么是深浅copy.
day8 文件操作
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1. 文件操作初识 2. 读 3. 写 4. 追加 5. 文件操作的其他方法 6. 文件的改
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1,有如下文件,a1.txt,里面的内容为: 老男孩是最好的学校, 全心全意为学生服务, 只为学生未来,不为牟利。 我说的都是真的。哈哈 分别完成以下的功能: a,将原文件全部读出来并打印。 b,在原文件后面追加一行内容:信不信由你,反正我信了。 c,将原文件全部读出来,并在后面添加一行内容:信不信由你,反正我信了。 d,将原文件全部清空,换成下面的内容: 每天坚持一点, 每天努力一点, 每天多思考一点, 慢慢你会发现, 你的进步越来越大。 e,将原文件内容全部读取出来,并在‘我说的都是真的。哈哈’这一行的前面加一行,‘你们就信吧~’然后将更改之后的新内容,写入到一个新文件:a1.txt。 2,有如下文件,t1.txt,里面的内容为: 葫芦娃,葫芦娃, 一根藤上七个瓜 风吹雨打,都不怕, 啦啦啦啦。 我可以算命,而且算的特别准: 上面的内容你肯定是心里默唱出来的,对不对?哈哈 分别完成下面的功能: a,以r+的模式打开原文件,判断原文件是否可读,是否可写。 b,以r的模式打开原文件,利用for循环遍历文件句柄。 c,以r的模式打开原文件,以readlines()方法读取出来,并循环遍历 readlines(),并分析b,与c 有什么区别?深入理解文件句柄与 readlines()结果的区别。 d,以r模式读取‘葫芦娃,’前四个字符。 e,以r模式读取第一行内容,并去除此行前后的空格,制表符,换行符。 f,以r模式打开文件,从‘风吹雨打.....’开始读取,一直读到最后。 g,以a+模式打开文件,先追加一行:‘老男孩教育’然后在从最开始将 原内容全部读取出来。 h,截取原文件,截取内容:‘葫芦娃,葫芦娃,’ 3,文件a.txt内容:每一行内容分别为商品名字,价钱,个数。 apple 10 3 tesla 100000 1 mac 3000 2 lenovo 30000 3 chicken 10 3 通过代码,将其构建成这种数据类型:[{'name':'apple','price':10,'amount':3},{'name':'tesla','price':1000000,'amount':1}......] 并计算出总价钱。 4,有如下文件: alex是老男孩python发起人,创建人。 alex其实是人妖。 谁说alex是sb? 你们真逗,alex再牛逼,也掩饰不住资深屌丝的气质。 将文件中所有的alex都替换成大写的SB(文件的改的操作)。 5,文件a1.txt内容(升级题) name:apple price:10 amount:3 year:2012 name:tesla price:100000 amount:1 year:2013 ....... 通过代码,将其构建成这种数据类型: [{'name':'apple','price':10,'amount':3}, {'name':'tesla','price':1000000,'amount':1}......] 并计算出总价钱。 6,文件a1.txt内容(升级题) 序号 部门 人数 平均年龄 备注 1 python 30 26 单身狗 2 Linux 26 30 没对象 3 运营部 20 24 女生多 ....... 通过代码,将其构建成这种数据类型: [{'序号':'1','部门':Python,'人数':30,'平均年龄':26,'备注':'单身狗'}, ......]
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
就是第4题的代码
day9 初识函数
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1. 函数的初识 2. 函数的返回值 3. 函数的参数
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1,整理函数相关知识点,写博客。 2,写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。 3,写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。 4,写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。 5,写函数,计算传入函数的字符串中,[数字]、[字母]、[空格] 以及 [其他]的个数,并返回结果。 6,写函数,接收两个数字参数,返回比较大的那个数字。 7,写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。 dic = {"k1": "v1v1", "k2": [11,22,33,44]} PS:字典中的value只能是字符串或列表 8,写函数,此函数只接收一个参数且此参数必须是列表数据类型,此函数完成的功能是返回给调用者一个字典,此字典的键值对为此列表的索引及对应的元素。例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}。 9,写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。用户通过输入这四个内容,然后将这四个内容传入到函数中,此函数接收到这四个内容,将内容追加到一个student_msg文件中。 10,对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。 11,写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(升级题)。 12,写一个函数完成三次登陆功能:(升级题,两天做完) (1)用户的用户名密码从一个文件register中取出。 (2)register文件包含多个用户名,密码,用户名密码通过|隔开,每个人的用户名密码占用文件中一行。 (3)完成三次验证,三次验证不成功则登录失败,登录失败返回False。 (4)登陆成功返回True。 13,再写一个函数完成注册功能:(升级题,两天做完) (1)用户输入用户名密码注册。 (2)注册时要验证(文件regsiter中)用户名是否存在,如果存在则让其重新输入用户名,如果不存在,则注册成功。 (3)注册成功后,将注册成功的用户名,密码写入regsiter文件,并以 | 隔开。 (4)注册成功后,返回True,否则返回False。
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
明日默写。
①,return的作用。
②,传参的几种方法,每个都简单写一个代码。
如,实参,按位置传参。
def func(x,y):
Pass
func(‘a’,’b’)
day10 函数进阶
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1. 函数的动态参数:*args、**kwargs,形参的顺序 2. 名称空间,临时名称空间,作用域,取值顺序,加载顺序等 3. global,nonlocal 4. 函数的嵌套
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1,继续整理函数相关知识点,写博客。 2,写函数,接收n个数字,求这些参数数字的和。(动态传参) 3,读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么? a=10 b=20 def test5(a,b): print(a,b) c = test5(b,a) print(c) 4,读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么? a=10 b=20 def test5(a,b): a=3 b=5 print(a,b) c = test5(b,a) print(c) 5,写函数,传入函数中多个实参(均为可迭代对象如字符串,列表,元祖,集合等),将每个实参的每个元素依次添加到函数的动态参数args里面. 例如 传入函数两个参数[1,2,3] (22,33)最终args为(1,2,3,22,33) 6,写函数,传入函数中多个实参(实参均为字典),将每个实参的键值对依次添加到函数的动态参数kwargs里面. 例如 传入函数两个参数{‘name’:’alex’} {‘age’:1000}最终kwargs为{‘name’:’alex’ ,‘age’:1000} 7, 下面代码成立么?如果不成立为什么报错?怎么解决? 7.1 a = 2 def wrapper(): print(a) wrapper() 7.2 a = 2 def wrapper(): a += 1 print(a) wrapper() 7.3 def wrapper(): a = 1 def inner(): print(a) inner() wrapper() 7.4 def wrapper(): a = 1 def inner(): a += 1 print(a) inner() wrapper() 8,写函数,接收两个数字参数,将较小的数字返回. 9,写函数,接收一个参数(此参数类型必须是可迭代对象),将可迭代对象的每个元素以’_’相连接,形成新的字符串,并返回. 例如 传入的可迭代对象为[1,'老男孩','武sir']返回的结果为’1_老男孩_武sir’ 10,写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值} 例如:min_max(2,5,7,8,4) 返回:{‘max’:8,’min’:2}(此题用到max(),min()内置函数) 11,写函数,传入一个参数n,返回n的阶乘 例如:cal(7) 计算7*6*5*4*3*2*1 12写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组(升级题) 例如:[(‘红心’,2),(‘草花’,2), …(‘黑桃’,‘A’)] 13 有如下函数: def wrapper(): def inner(): print(666) wrapper() 你可以任意添加代码,用两种或以上的方法,执行inner函数.
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1,形参的接收顺序。 2,什么是命名空间,什么是全局名称空间,什么是局部名称空间,什么是内置名称空间。 3,什么是全局作用域,什么是局部作用域。 4,名称空间的加载顺序,取值顺序。 5,解释一下什么是global,什么是nonlocal。
day11 高阶函数
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1. 函数名的应用 2. 闭包 3. 可迭代对象 4. 迭代器 5. while 循环模拟 for循环机制 6. 生成器 7. 生成器的表达方式
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1,写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值} 例如:min_max(2,5,7,8,4) 返回:{‘max’:8,’min’:2}(此题用到max(),min()内置函数) 2,写函数,传入一个参数n,返回n的阶乘 例如:cal(7) 计算7*6*5*4*3*2*1 3,写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组 例如:[(‘红桃’,2),(‘梅花’,2), …(‘黑桃’,‘A’)] 4,有如下函数: def wrapper(): def inner(): print(666) wrapper() 你可以任意添加代码,用两种或以上的方法,执行inner函数. 5,相关面试题(先从纸上写好答案,然后在运行): 5.1,有函数定义如下: def calc(a,b,c,d=1,e=2): return (a+b)*(c-d)+e 请分别写出下列标号代码的输出结果,如果出错请写出Error。 print(calc(1,2,3,4,5))_____ print(calc(1,2))____ print(calc(e=4,c=5,a=2,b=3))___ print(calc(1,2,3))_____ print(calc(1,2,3,e=4))____ print(calc(1,2,3,d=5,4))_____ 5.2,下面代码打印的结果分别是_list1= ,list2= ,list3= . def extendList(val,list=[]): list.append(val) return list list1 = extendList(10) list2 = extendList(123,[]) list3 = extendList('a') print('list1=%s'%list1) print('list2=%s'%list2) print('list3=%s'%list3) 5.3,写代码完成99乘法表.(升级题) 1 * 1 = 1 2 * 1 = 2 2 * 2 = 4 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 ...... 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1,什么是闭包。 2,迭代器的好处。 3,用while循环模拟for循环(写具体代码)。
day12 迭代器/生成器
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1. 生成器 2. 列表推导式,生成器表达式
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1,整理今天的博客,写课上代码,整理流程图。 2,用列表推导式做下列小题 (1) 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母 (2) 求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元祖列表 (3) 求M中3,6,9组成的列表M = [[1,2,3],[4,5,6],[7,8,9]] (4) 求出50以内能被3整除的数的平方,并放入到一个列表中。 (5) 构建一个列表:['python1期', 'python2期', 'python3期', 'python4期', 'python6期', 'python7期', 'python8期', 'python9期', 'python10期'] (6) 构建一个列表:[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6)] (7) 构建一个列表:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18] (8) 有一个列表l1 = ['alex', 'WuSir', '老男孩', '太白']将其构造成这种列表['alex0', 'WuSir1', '老男孩2', '太白3'] (9)有以下数据类型: x = { 'name':'alex', 'Values':[{'timestamp':1517991992.94, 'values':100,}, {'timestamp': 1517992000.94, 'values': 200,}, {'timestamp': 1517992014.94, 'values': 300,}, {'timestamp': 1517992744.94, 'values': 350}, {'timestamp': 1517992800.94, 'values': 280} ],} 将上面的数据通过列表推导式转换成下面的类型:[[1517991992.94, 100], [1517992000.94, 200], [1517992014.94, 300], [1517992744.94, 350], [1517992800.94, 280]] 3,求结果: v = [i % 2 for i in range(10)] print(v) 4,求结果: v = (i % 2 for i in range(10)) print(v) 5,求结果: for i in range(5): print(i) print(i)
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1. 形参的接收顺序。 2. 什么是命名空间,什么是全局名称空间,什么是局部名称空间,什么是内置名称空间。 3. 什么是全局作用域,什么是局部作用域。 4. 名称空间的加载顺序,取值顺序。 5. 解释一下什么是global,什么是nonlocal。
day13 内置函数
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1. 部分内置函数
无作业、无默写
day14 内置函数2
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1. 内置函数2 2. 匿名函数 3. 递归函数
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1.整理今天所学内容,整理知识点,整理博客。 2.画好流程图。 3.都完成的做一下作业(下面题都是用内置函数或者和匿名函数结合做出): 4.用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb name=[‘oldboy’,'alex','wusir'] 5.用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾 l=[{'name':'alex'},{'name':'y'}] 6.用filter来处理,得到股票价格大于20的股票名字 shares={ 'IBM':36.6, 'Lenovo':23.2, 'oldboy':21.2, 'ocean':10.2, } 7.有下面字典,得到购买每只股票的总价格,并放在一个迭代器中。 结果:list一下[9110.0, 27161.0,......] portfolio = [ {'name': 'IBM', 'shares': 100, 'price': 91.1}, {'name': 'AAPL', 'shares': 50, 'price': 543.22}, {'name': 'FB', 'shares': 200, 'price': 21.09}, {'name': 'HPQ', 'shares': 35, 'price': 31.75}, {'name': 'YHOO', 'shares': 45, 'price': 16.35}, {'name': 'ACME', 'shares': 75, 'price': 115.65}] 8.还是上面的字典,用filter过滤出单价大于100的股票。 9.有下列三种数据类型, l1 = [1,2,3,4,5,6] l2 = ['oldboy','alex','wusir','太白','日天'] tu = ('**','***','****','*******') 写代码,最终得到的是(每个元祖第一个元素>2,第三个*至少是4个。) [(3, 'wusir', '****'), (4, '太白', '*******')]这样的数据。 10.有如下数据类型: l1 = [ {'sales_volumn': 0}, {'sales_volumn': 108}, {'sales_volumn': 337}, {'sales_volumn': 475}, {'sales_volumn': 396}, {'sales_volumn': 172}, {'sales_volumn': 9}, {'sales_volumn': 58}, {'sales_volumn': 272}, {'sales_volumn': 456}, {'sales_volumn': 440}, {'sales_volumn': 239}] 将l1按照列表中的每个字典的values大小进行排序,形成一个新的列表。 11. 求结果 v = [lambda :x for x in range(10)] print(v) print(v[0]) print(v[0]()) 12. 求结果 v = (lambda :x for x in range(10)) print(v) print(v[0]) print(v[0]()) print(next(v)) print(next(v)())
无默写
day15 面向对象的初识
![](http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif)
![](http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif)
1. 面向对象初识 2. 面向对象的结构 3. 类名的使用 4. 对象的使用 5. 类名称空间、对象名称空间 6. 面向对象的组合