Python 练习题

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这种是一体)

  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.简述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'})

  1. 按照需求为列表排序:
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类型。

  1. 用户输入一个数字,判断一个数是否是水仙花数。
    水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数. 那这个数就是一个水仙花数,
    例如: 153 = 13 + 53 + 3**3
  2. 把列表中所有姓周的⼈的信息删掉(此题有坑, 请慎重):
    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']

  1. 构建一个列表,列表里面的元素是扑克牌除去大小王以后,所有的牌类(列表里面的元素为元组类型)。
    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.都完成的做一下作业(下面题都是用内置函数或者和匿名函数结合做出):

  1. 用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb
l=[{'name':'alex'},{'name':'y'}]
  1. 用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 = ('**','***','****','*******')

写代

转载于:https://www.cnblogs.com/zhangshan33/p/11419333.html

你可能感兴趣的:(Python 练习题)