python 练习题
day1
1.简述变量命名规范
7条:
1.由字母,数字和下划线组成
2.name = input(“>>>”) name变量是什么数据类型通过代码检测
type
3.if条件语句的基本结构?
if 条件 :
print()
4.用print打印出下面内容:
⽂能提笔安天下,
武能上⻢定乾坤.
⼼存谋略何⼈胜,
古今英雄唯是君.
5.利用if语句写出猜大小的游戏:
设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确。
num = 66
if num ==66:
print("正确")
6.提⽰⽤户输入他的年龄, 程序进⾏判断.
如果⼩于10, 提⽰⼩屁孩, 如果⼤于10, ⼩于 20, 提⽰青春期叛逆的⼩屁孩. 如果⼤于20, ⼩于30. 提⽰开始定性, 开始混社会的⼩ 屁孩⼉, 如果⼤于30, ⼩于40. 提⽰看老⼤不⼩了, 赶紧结婚⼩屁孩⼉. 如果⼤于40, ⼩ 于50. 提⽰家⾥有个不听话的⼩屁孩⼉. 如果⼤于50, ⼩于60. 提⽰⾃⼰⻢上变成不听 话的老屁孩⼉.如果⼤于60, ⼩于70. 提⽰活着还不错的老屁孩⼉. 如果⼤于70, ⼩于 90. 提⽰⼈⽣就快结束了的⼀个老屁孩⼉. 如果⼤于90以上. 提⽰. 再⻅了这个世界.
7.单行注释以及多行注释表示方式
8.简述你所知道的Python3和Python2的区别?
9.提⽰⽤户输入大黑哥. 判断⽤户输入的对不对. 如果对, 提⽰真聪明, 如果不对, 提⽰输入有误
10.⽤户输⼊⼀个⽉份. 然后判断⽉份是多少⽉. 根据不同的⽉份, 打印出不同的饮⻝(根据个⼈习惯和⽼家习惯随意编写)
11.⽤户输⼊⼀个分数. 根据分数来判断⽤户考试成绩的档次
=90 A
=80 B
=70 C
=60 D
< 60 不及格
day2
1.判断下列逻辑语句的结果,一定要自己先分析
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 and 0 or 8 and 9 and 5 or 2
4)4 or 8 and not False and 8 or 9
3.下列结果是什么? (2>1这种是一体)
- 6 or 2 > 1
- 3 or 2 > 1
- 0 or 5 < 4
- 5 < 4 or 3
- 2 > 1 or 6
- 3 and 2 > 1
- 0 and 3 > 1
- 2 > 1 and 3
- 3 > 1 and 0
- 3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2
4.简述ASCII、Unicode、utf-8编码
5.简述位和字节的关系?
6.while循环语句基本结构?
7.利用while语句写出猜大小的游戏:
设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确,然后退出循环。
8.在7题的基础上进行升级:
给用户三次猜测机会,如果三次之内猜测对了,则显示猜测正确,退出循环,如果三次之内没有猜测正确,则自动退出循环,并显示‘太笨了你....’。
9.使用while循环输出 1 2 3 4 5 6 8 9 10
10.求1-100的所有数的和
11.输出 1-100 内的所有奇数
12.输出 1-100 内的所有偶数
13.求1-2+3-4+5 ... 99的所有数的和
14.⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化)
day3
1.将今天的课上的代码敲一遍,然后整理笔记
2.有变量name = "aleX leNb" 完成如下操作:
移除 name 变量对应的值两边的空格,并输出处理结果
判断 name 变量是否以 "al" 开头,并输出结果
判断name变量是否以"Nb"结尾,并输出结果
将 name 变量对应的值中的 所有的"l" 替换为 "p",并输出结果
将name变量对应的值中的第一个"l"替换成"p",并输出结果
将 name 变量对应的值根据 所有的"l" 分割,并输出结果。
将name变量对应的值根据第一个"l"分割,并输出结果。
将 name 变量对应的值变大写,并输出结果
将 name 变量对应的值变小写,并输出结果
判断name变量对应的值字母"l"出现几次,并输出结果
如果判断name变量对应的值前四位"l"出现几次,并输出结果
请输出 name 变量对应的值的第 2 个字符?
请输出 name 变量对应的值的前 3 个字符?
请输出 name 变量对应的值的后 2 个字符?
3.有字符串s = "123a4b5c"
通过对s切片形成新的字符串s1,s1 = "123"
通过对s切片形成新的字符串s2,s2 = "a4b"
通过对s切片形成新的字符串s3,s3 = "1345"
通过对s切片形成字符串s4,s4 = "2ab"
通过对s切片形成字符串s5,s5 = "c"
通过对s切片形成字符串s6,s6 = "ba2"
4.使用while和for循环分别打印字符串s="asdfer"中每个元素。
5.使用for循环对s="asdfer"进行循环,但是每次打印的内容都是"asdfer"。
6.使用for循环对s="abcdefg"进行循环,每次打印的内容是每个字符加上sb, 例如:asb, bsb,csb,...gsb。
7.使用for循环对s="321"进行循环,打印的内容依次是:"倒计时3秒","倒计时2秒","倒计时1秒","出发!"。
8.实现一个整数加法计算器(两个数相加):
如:content = input("请输入内容:") 用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算。
9.选做题:实现一个整数加法计算器(多个数相加):
如:content = input("请输入内容:") 用户输入:5+9+6 +12+ 13,然后进行分割再进行计算。
10.计算用户输入的内容中有几个整数(以个位数为单位)。
如:content = input("请输入内容:") # 如fhdal234slfh98769fjdla
11.写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和?
12.选做题:写代码,完成下列需求:
用户可持续输入(用while循环),用户使用的情况:
输入A,则显示走大路回家,然后在让用户进一步选择:
是选择公交车,还是步行?
选择公交车,显示10分钟到家,并退出整个程序。
选择步行,显示20分钟到家,并退出整个程序。
输入B,则显示走小路回家,并退出整个程序。
输入C,则显示绕道回家,然后在让用户进一步选择:
是选择游戏厅玩会,还是网吧?
选择游戏厅,则显示 ‘一个半小时到家,爸爸在家,拿棍等你。’并让其重新输入A,B,C选项。
选择网吧,则显示‘两个小时到家,妈妈已做好了战斗准备。’并让其重新输入A,B,C选项。
13.选做题:判断⼀句话是否是回⽂. 回⽂: 正着念和反着念是⼀样的. 例如, 上海⾃来⽔来⾃海上(使用步长)
day4
1.写代码,有如下列表,按照要求实现每一个功能
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
计算列表的长度并输出
列表中追加元素"seven",并输出添加后的列表
请在列表的第2个位置前插入元素"Tony",并输出添加后的列表
请修改列表第2个位置的元素为"Kelly",并输出修改后的列表
请将列表l2=[1,"a",3,4,"heart"]的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
请将字符串s = "qwert"的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
请删除列表中的元素"ritian",并输出添加后的列表
请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表
请删除列表中的第2至4个元素,并输出删除元素后的列表
2.写代码,有如下列表,利用切片实现每一个功能
li = [1, 3, 2, "a", 4, "b", 5,"c",["a","b","cc"]]
通过对li列表的切片形成新的列表l1,l1 = [1,3,2]
通过对li列表的切片形成新的列表l2,l2 = ["a",4,"b"]
通过对li列表的切片形成新的列表l3,l3 = ["1,2,4,5]
通过对li列表的切片形成新的列表l4,l4 = [3,"a","b"]
通过对li列表的切片形成新的列表l5,l5 = ["c"]
通过对li列表的切片形成新的列表l6,l6 = ["b","a",3]
通过对li列表的切片形成新的列表l7,l7 = ['cc', 'b', 'a']
3.写代码,有如下列表,按照要求实现每一个功能。
lis = [2, 33, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
将列表lis中的"tt"变成大写(用两种方式)。
将列表中的数字3变成字符串"100"(用两种方式)。
将列表中的字符串"1"变成数字101(用两种方式)。
4.请用代码实现:
li = ["alex", "wusir", "taibai"]
利用下划线将列表的每一个元素拼接成字符串"alex_wusir_taibai"
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
14.用户输入一个数字,使用列表输出这个数字内的斐波那契数列,如下列表:(选做题)
用户输入100 输出[1,1,2,3,5,8,13,21,34,55,89]这个列表
day5
1.请将列表中的每个元素通过 "_" 链接起来。
users = ['大黑哥','龚明阳',666,'渣渣辉']
2.请将元组 v1 = (11,22,33) 中的所有元素追加到列表 v2 = [44,55,66] 中。
3.请将元组 v1 = (11,22,33,44,55,66,77,88,99)中的所有偶数索引位置的元素追加到新列表中。
4.将字典的键和值分别追加到key_list 和 value_list 两个列表中,如:
key_list = []
value_list = []
info = {'k1':'v1','k2':'v2','k3':'v3'}
5.字典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,输出修改后的字典
6.有如下字典,实现以下需求的内容
av_catalog = {
"欧美":{
"www.太白.com": ["很多免费的,世界最大的","质量一般"],
"www.alex.com": ["很多免费的,也很大","质量挺好"],
"oldboy.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
"hao222.com":["质量很高,真的很高","全部收费,屌丝请绕过"]
},
"日韩":{
"tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]
},
"大陆":{
"1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
}
}
1)给此 ["很多免费的,世界最大的","质量一般"]列表第二个位置插入一个 元素:'量很大'。
2)将此 ["质量很高,真的很高","全部收费,屌丝请绕过"]列表的 "全部收费,屌丝请绕过" 删除。
3)将此["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]列表的 "verygood"全部变成大写。
4)给 '大陆' 对应的字典添加一个键值对 '1048' :['一天就封了']
5)删除这个键值对:"oldboy.com": ["多是自拍,高质量图片很多","资源不多,更新慢"]
6)给此["全部免费,真好,好人一生平安","服务器在国外,慢"]列表的第一个元素,加上一句话:'可以爬下来'
7.请循环打印k2对应的值中的每个元素。
info = {
'k1':'v1',
'k2':[('alex'),('wupeiqi'),('oldboy')],
}
8.有字符串"k: 1|k1:2|k2:3 |k3 :4" 处理成字典 {'k':1,'k1':2....}
写代码
9.有如下值 li= [11,22,33,44,55,77,88,99,90] ,将所有大于 66 的值保存至字典的第一个key对应的列表中,将小于 66 的值保存至第二个key对应的列表中。
10.输出商品列表,用户输入序号,显示用户选中的商品
商品列表:
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998}]
要求:
1:页面显示 序号 + 商品名称 + 商品价格,如:
1 电脑 1999
2 鼠标 10
3 游艇 20
4 美女 998
2:用户输入选择的商品序号,然后打印商品名称及商品价格
3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
4:用户输入Q或者q,退出程序。
11.看代码写结果(一定要先看代码在运行)
v = {}
for index in range(10):
v['users'] = index
print(v)
day6
1.有如下
v1 = {'郭宝元','李杰','太白','梦鸽'}
v2 = {'李杰','景女神}
请得到 v1 和 v2 的交集并输出
请得到 v1 和 v2 的并集并输出
请得到 v1 和 v2 的 差集并输出
请得到 v2 和 v1 的 差集并输出
2.循环提示用户输入,并将输入内容追加到列表中(如果输入N或n则停止循环)
3.写代码实现
v1 = {'alex','武sir','黑哥'}
v2 = []
循环提示用户输入,如果输入值在v1中存在,则追加到v2中,如果v1中不存在,则添加到v1中。(如果输入N或n则停止循环)
4.判断以下值那个能做字典的key ?那个能做集合的元素?
1
-1
""
None
[1,2]
(1,)
{11,22,33,4}
{'name':'wupeiq','age':18}
5.is 和 == 的区别?
6.type使用方式及作用?
7.id的使用方式及作用?
8.看代码写结果并解释原因
v1 = {'k1':'v1','k2':[1,2,3]}
v2 = {'k1':'v1','k2':[1,2,3]}
result1 = v1 == v2
result2 = v1 is v2
print(result1)
print(result2)
9.看代码写结果并解释原因
v1 = {'k1':'v1','k2':[1,2,3]}
v2 = v1
result1 = v1 == v2
result2 = v1 is v2
print(result1)
print(result2)
10.看代码写结果并解释原因
v1 = {'k1':'v1','k2':[1,2,3]}
v2 = v1
v1['k1'] = 'wupeiqi'
print(v2)
11.看代码写结果并解释原因
v1 = '人生苦短,我用Python'
v2 = [1,2,3,4,v1]
v1 = "人生苦短,用毛线Python"
print(v2)
12.看代码写结果并解释原因
info = [1,2,3]
userinfo = {'account':info, 'num':info, 'money':info}
info.append(9)
print(userinfo)
info = "题怎么这么多"
print(userinfo)
13.看代码写结果并解释原因
info = [1,2,3]
userinfo = [info,info,info,info,info]
info[0] = '不仅多,还特么难呢'
print(info,userinfo)
14.看代码写结果并解释原因
info = [1,2,3]
userinfo = [info,info,info,info,info]
userinfo[2][0] = '闭嘴'
print(info,userinfo)
15.看代码写结果并解释原因
info = [1,2,3]
user_list = []
for item in range(10):
user_list.append(info)
info[1] = "是谁说Python好学的?"
print(user_list)
16.看代码写结果并解释原因
data = {}
for i in range(10):
data['user'] = i
print(data)
17.看代码写结果并解释原因
data_list = []
data = {}
for i in range(10):
data['user'] = i
data_list.append(data)
print(data_list)
18.看代码写结果并解释原因
data_list = []
for i in range(10):
data = {}
data['user'] = i
data_list.append(data)
print(data_list)
19.使用循环打印出一下效果:
*
**
***
****
*****
****
***
**
*
*
***
*****
*******
*********
20.敲七游戏. 从1开始数数. 遇到7或者7的倍数(不包含17,27,这种数)要在桌上敲⼀下. 编程来完成敲七. 给出⼀个任意的数字n. 从1开始数. 数到n结束. 把每个数字都放在列表中, 在数的过程中出现7或 者7的倍数(不包含17,27,这种数).则向列表中添加⼀个'咣'
例如, 输⼊10. lst = [1, 2, 3, 4, 5, 6, '咣', 8, 9, 10]
day7
print(v2)
3.看代码写结果,并解释每一步的流程。
v1 = [1,2,3,4,5,6,7,8,9]
v2 = {}
for item in v1:
if item < 6:
continue
if 'k1' in v2:
v2['k1'].append(item)
else:
v2['k1'] = [item ]
print(v2)
4.简述赋值和深浅拷贝?
5.看代码写结果
import copy
v1 = "alex"
v2 = copy.copy(v1)
v3 = copy.deepcopy(v1)
print(v1 is v2)
print(v1 is v3)
6.看代码写结果
import copy
v1 = [1,2,3,4,5]
v2 = copy.copy(v1)
v3 = copy.deepcopy(v1)
print(v1 is v2)
print(v1 is v3)
7.看代码写结果
import copy
v1 = [1,2,3,4,5]
v2 = copy.copy(v1)
v3 = copy.deepcopy(v1)
print(v1[0] is v2[0])
print(v1[0] is v3[0])
print(v2[0] is v3[0])
8.看代码写结果
import copy
v1 = [1,2,3,4,[11,22]]
v2 = copy.copy(v1)
v3 = copy.deepcopy(v1)
print(v1[-1] is v2[-1])
print(v1[-1] is v3[-1])
print(v2[-1] is v3[-1])
9.看代码写结果
import copy
v1 = [1,2,3,{"name":'太白',"numbers":[7,77,88]},4,5]
v2 = copy.copy(v1)
print(v1 is v2)
print(v1[0] is v2[0])
print(v1[3] is v2[3])
print(v1[3]['name'] is v2[3]['name'])
print(v1[3]['numbers'] is v2[3]['numbers'])
print(v1[3]['numbers'][1] is v2[3]['numbers'][1])
10.看代码写结果
import copy
v1 = [1,2,3,{"name":'太白',"numbers":[7,77,88]},4,5]
v2 = copy.deepcopy(v1)
print(v1 is v2)
print(v1[0] is v2[0])
print(v1[3] is v2[3])
print(v1[3]['name'] is v2[3]['name'])
print(v1[3]['numbers'] is v2[3]['numbers'])
print(v1[3]['numbers'][1] is v2[3]['numbers'][1])
11.请说出下面a,b,c三个变量的数据类型。
a = ('太白金星')
b = (1,)
c = ({'name': 'barry'})
- 按照需求为列表排序:
l1 = [1, 3, 6, 7, 9, 8, 5, 4, 2]
# 从大到小排序
# 从小到大排序
# 反转l1列表
13.利用python代码构建一个这样的列表(升级题):
[['_','_','_'],['_','_','_'],['_','_','_']]
14.看代码写结果:
l1 = [1,2,]
l1 += [3,4]
print(l1)
15.看代码写结果:
dic = dict.fromkeys('abc',[])
dic['a'].append(666)
dic['b'].append(111)
print(dic)
16.l1 = [11, 22, 33, 44, 55],请把索引为奇数对应的元素删除(不能一个一个删除)
17.dic = {'k1':'太白','k2':'barry','k3': '白白', 'age': 18} 请将字典中所有键带k元素的键值对删除.
18.完成下列需求:
s1 = '太白金星'
将s1转换成utf-8的bytes类型。
将s1转化成gbk的bytes类型。
b = b'\xe5\xae\x9d\xe5\x85\x83\xe6\x9c\x80\xe5\xb8\x85'
b为utf-8的bytes类型,请转换成gbk的bytes类型。
- 用户输入一个数字,判断一个数是否是水仙花数。
水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数. 那这个数就是一个水仙花数,
例如: 153 = 13 + 53 + 3**3 - 把列表中所有姓周的⼈的信息删掉(此题有坑, 请慎重):
lst = ['周⽼⼆', '周星星', '麻花藤', '周扒⽪']
结果: lst = ['麻花藤']
21.车牌区域划分, 现给出以下车牌. 根据车牌的信息, 分析出各省的车牌持有量. (选做题)
cars = ['鲁A32444','鲁B12333','京B8989M','⿊C49678','⿊C46555','沪 B25041']
locals = {'沪':'上海', '⿊':'⿊⻰江', '鲁':'⼭东', '鄂':'湖北', '湘':'湖南'}
结果: {'⿊⻰江':2, '⼭东': 2, '上海': 1}
第一周大作业
1.整理本周的内容,抒写笔记. 画思维导图!
2.完成一个商城购物车的程序。
要求:
1,用户先给自己的账户充钱:比如先充3000元。
2,有如下的一个格式:
goods = [{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},]
3,页面显示 序号 + 商品名称 + 商品价格,如:
1 电脑 1999
2 鼠标 10
…
4,用户输入选择的商品序号,然后打印商品名称及商品价格,并将此商品,添加到购物车(自己定义购物车),用户还可继续添加商品。
5,如果用户输入的商品序号有误,则提示输入有误,并重新输入。
6,用户输入N为购物车结算,依次显示用户购物车里面的商品,数量及单价,若充值的钱数不足,则让用户删除某商品,直至可以购买,若充值的钱数充足,则可以直接购买。
7,用户输入Q或者q退出程序。
8,退出程序之后,依次显示用户购买的商品,数量,单价,以及此次共消费多少钱,账户余额多少,并将购买信息显示。
1题必须要重视,因为这样就能知道你哪部分的知识点是没有掌握的!
完成3个要求为C。
完成4个要求为C+。
完成6个要求为B。
完成7个要求为A。
完成全部要求并且没有BUG为A+。
day08
1.有如下文件,a1.txt,里面的内容为:
老男孩是最好的学校,
全心全意为学生服务,
只为学生未来,不为牟利。
我说的都是真的。哈哈
分别完成以下的功能:
a,将原文件全部读出来并打印。
b,在原文件后面追加一行内容:信不信由你,反正我信了。
c,将原文件全部读出来,并在后面添加一行内容:信不信由你,反正我信了。
d,将原文件全部清空,换成下面的内容:
每天坚持一点,
每天努力一点,
每天多思考一点,
慢慢你会发现,
你的进步越来越大。
2.有如下文件,t1.txt,里面的内容为:
葫芦娃,葫芦娃,
一根藤上七个瓜
风吹雨打,都不怕,
啦啦啦啦。
我可以算命,而且算的特别准:
上面的内容你肯定是心里默唱出来的,对不对?哈哈
分别完成下面的功能:
a,以r的模式打开原文件,利用for循环遍历文件句柄。
b,以r的模式打开原文件,以readlines()方法读取出来,并循环遍历 readlines(),并分析a,与b 有什么区别?深入理解文件句柄与 readlines()结果的区别。
c,以r模式读取‘葫芦娃,’前四个字符。
d,以r模式读取第一行内容,并去除此行前后的空格,制表符,换行符。
e,以a+模式打开文件,先追加一行:‘老男孩教育’然后在从最开始将 原内容全部读取出来。
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,year:2012},
{'name':'tesla','price':1000000,'amount':1}......]
并计算出总价钱。
6.文件a1.txt内容(选做题)
序号 部门 人数 平均年龄 备注
1 python 30 26 单身狗
2 Linux 26 30 没对象
3 运营部 20 24 女生多
.......
通过代码,将其构建成这种数据类型:
[{'序号':'1','部门':Python,'人数':30,'平均年龄':26,'备注':'单身狗'},
......]
day09
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退出,性别默认为男,如果遇到女学生,则把性别输入女。
day10
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里面?如何将每个字典的所有键值对依次添加到kwargs里面?
6.下面代码成立么?如果不成立为什么报错?怎么解决?
6.1
a = 2
def wrapper():
print(a)
wrapper()
6.2
a = 2
def wrapper():
a += 1
print(a)
wrapper()
6.3
def wrapper():
a = 1
def inner():
print(a)
inner()
wrapper()
6.4
def wrapper():
a = 1
def inner():
a += 1
print(a)
inner()
wrapper()
7.写函数,接收两个列表,将列表长度比较小的列表返回.
8.写函数,接收一个参数(此参数类型必须是可迭代对象),将可迭代对象的每个元素以’_’相连接,形成新的字符串,并返回.
例如 传入的可迭代对象为[1,'老男孩','宝元']返回的结果为’1_老男孩_宝元’
9.有如下函数:
def wrapper():
def inner():
print(666)
wrapper()
你可以任意添加代码,执行inner函数.
10.补充代码,可以使以下的代码可以运行
a = 10
def func():
a += 1
print(a)
func()
day11
1.请写出下列代码的执行结果:
例一:
def func1():
print('in func1')
def func2():
print('in func2')
ret = func1
ret()
ret1 = func2
ret1()
ret2 = ret
ret3 = ret2
ret2()
ret3()
执行结果:
例二:
def func1():
print('in func1')
def func2():
print(**'in func2'**)
def func3(x,y):
x()
print('in func3')
y()
print(111)
func3(func2,func1)
print(222)
执行结果:
例三(选做题):
def func1():
print('in func1')
def func2(x):
print('in func2')
return x
def func3(y):
print('in func3')
return y
ret = func2(func1)
ret()
ret2 = func3(func2)
ret3 = ret2(func1)
ret3()
执行结果:
看代码写结果:
例四:
def func(arg):
return arg.replace('苍老师', '***')
def run():
msg = "Alex的女朋友苍老师和大家都是好朋友"
result = func(msg)
print(result)
run()
data = run()
print(data)
看代码写结果:
例五:
data_list = []
def func(arg):
return data_list.insert(0, arg)
data = func('绕不死你')
print(data)
print(DATA_LIST)
看代码写结果:
例六:
def func():
print('你好呀')
return '好你妹呀'
func_list = [func, func, func]
for item in func_list:
val = item()
print(val)
看代码写结果:
例七:
def func():
print('你好呀')
return '好你妹呀'
func_list = [func, func, func]
for i in range(len(func_list)):
val = func_list[i]()
print(val)
看代码写结果:
例八:
def func():
return '大烧饼'
def bar():
return '吃煎饼'
def base(a1, a2):
return a1() + a2()
result = base(func, bar)
print(result)
看代码写结果:
例九:
for item in range(10):
print(item)
print(item)
看代码写结果:
例十:
def func():
for item in range(10):
pass
print(item)
func()
看代码写结果:
例十一:
item = '老男孩'
def func():
item = 'alex'
def inner():
print(item)
for item in range(10):
pass
inner()
func()
看代码写结果:
例十二:
l1 = []
def func(args):
l1.append(args)
return l1
print(func(1))
print(func(2))
print(func(3))
看代码写结果:
例十三:
name = '宝元'
def func():
global name
name = '男神'
print(name)
func()
print(name)
看代码写结果:
例十四:
name = '宝元'
def func():
print(name)
func()
看代码写结果:
例十五:
name = '宝元'
def func():
print(name)
name = 'alex'
func()
看代码写结果:
例十六:
def func():
count = 1
def inner():
nonlocal count
count += 1
print(count)
print(count)
inner()
print(count)
func()
看代码写结果:
例十七:
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)
看代码写结果:
例十八:
def extendList(val,list=[]):
list.append(val)
return list
print('list1=%s'% extendList(10))
print('list2=%s'% extendList(123,[]))
print('list3=%s'% extendList('a'))
2.用你的理解解释一下什么是可迭代对象,什么是迭代器。
3.使用while循环实现for循环的本质(面试题)
day12
1.整理今天笔记,课上代码最少敲3遍。
2.用列表推导式做下列小题
过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母
求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元祖列表
求M中3,6,9组成的列表M = [[1,2,3],[4,5,6],[7,8,9]]
求出50以内能被3整除的数的平方,并放入到一个列表中。
构建一个列表:['python1期', 'python2期', 'python3期', 'python4期', 'python6期', 'python7期', 'python8期', 'python9期', 'python10期']
构建一个列表:[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6)]
构建一个列表:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
有一个列表l1 = ['alex', 'WuSir', '老男孩', '太白']将其构造成这种列表['alex0', 'WuSir1', '老男孩2', '太白3']
3.有以下数据类型:
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]]
4.构建一个列表,列表里面是三种不同尺寸的T恤衫,每个尺寸都有两个颜色(列表里面的元素为元组类型)。
colors = ['black', 'white']
sizes = ['S', 'M', 'L']
- 构建一个列表,列表里面的元素是扑克牌除去大小王以后,所有的牌类(列表里面的元素为元组类型)。
l1 = [('A','spades'),('A','diamonds'), ('A','clubs'), ('A','hearts')......('K','spades'),('K','diamonds'), ('K','clubs'), ('K','hearts') ]
6.简述一下yield 与yield from的区别。
7.看代码求结果(面试题):
v = [i % 2 for i in range(10)]
print(v)
v = (i % 2 for i in range(10))
print(v)
for i in range(5):
print(i)
print(i)
第二周大作业
1.整理本周笔记,画思维导图,上传到码云.
2.将考试的卷子重做一下
3.用代码模拟博客园系统
项目分析:
一.首先程序启动,显示下面内容供用户选择:
1.请登录
2.请注册
3.进入文章页面
4.进入评论页面
5.进入日记页面
6.进入收藏页面
7.注销账号
8.退出整个程序
二.必须实现的功能:
1.注册功能要求:
a.用户名、密码要记录在文件中。
b.用户名要求:只能含有字母或者数字不能含有特殊字符并且确保用户名唯一。
c.密码要求:长度要在6~14个字符之间。
d.超过三次登录还未成功,则退出整个程序。
2.登录功能要求:
a.用户输入用户名、密码进行登录验证。
b.登录成功之后,才可以访问3 - 7选项,如果没有登录或者登录不成功时访问3 - 7选项,不允许访问,跳转到登录。(修改全局变量)
3.进入文章页面要求:
提示欢迎xx进入文章页面。(xx是当前登录的用户名)
4.进入评论页面要求:
提示欢迎xx进入评论页面。
5.进入日记页面要求:
提示欢迎xx进入日记页面。
6.进入收藏页面要求:
提示欢迎xx进入收藏页面。
7.注销账号要求:
不是退出整个程序,而是将已经登录的状态变成未登录状态(访问3~7选项时需要重新登录)。
8.退出整个程序要求:
就是结束整个程序。
4.用代码实现三次用户登录及锁定(选做,时间充足建议做一做)
项目分析:
一.首先程序启动,显示下面内容供用户选择:
1.注册
2.登录
a.用户选择登录的时候,首先判断用户名在userinfo.txt表中存在不在,存在就不能进行注册
b.当注册的用户名不存在的时候将用户名和密码写入到userinfo.txt文件中
c.用户选择登录的时候,判断用户输入的账号和密码是否userinfo.txt存储的一致
d.用户名和密码一致就终止循环,并提示用户登录成功!
e.用户名和密码不一致,只有三次登录机会,三次过后提示用户名被锁定,请联系管理员!并终止循环
f.当用户名输出三次,再次运行程序.登录锁定的账号继续提示用户名被锁定,请联系管理员!
day13
1.将今日课上的代码敲3遍。
2.都完成的做一下作业(下面题都是用内置函数或者和匿名函数结合做出):
- 用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb
l=[{'name':'alex'},{'name':'y'}]
- 用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾
l=[{'name':'alex'},{'name':'y'}]
3)用filter来处理,得到股票价格大于20的股票名字
shares={
'IBM':36.6,
'Lenovo':23.2,
'oldboy':21.2,
'ocean':10.2,
}
4)有下面字典,得到购买每只股票的总价格,并放在一个迭代器中。
结果: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}]
5)还是上面的字典,用filter过滤出单价大于100的股票。
6)有下列三种数据类型,
l1 = [1,2,3,4,5,6]
l2 = ['oldboy','alex','wusir','太白','日天']
tu = ('**','***','****','*******')
写代