往期作业:
1.文件操作有哪些模式?请简述各模式的作用?
r w a rb wb r+ ab
2.s='he11o,wox1d!‘请使用 strip方法去掉字符串两端的’*'号
s.strip('*')
3.用户输入一个任意数字n,求1-n之间所有数字中的奇数
for i in range(1,n,2)
4.s= ‘hskakhlkshfkskjakf’,请去除s字符串中重复的字母
set(s)(会打乱顺序)
a = 10
b = 20
def test5(a,b):
print(a,b)
c= test5(b,a)
print(c)
上述代码中,打印出来的值a,b,c分别是什么?为什么?
a = 20,b = 10,c = None
6.s='123.33sdhf3424.34fdg323.324'
,计算字符串中所有数字的和
本题结果应为:123.33+3424.34+323.324
(1)\d+\.?\d{2}(d{2}
:保留两位小数) (2)\d+\.?\d*
(全部保留)
第一种解法:
import re
s = '123.33sdhf3424.34fdg323.324'
num = re.findall('\d+\.?\d*',s)
num = [float(i) for i in num]
print(sum(num))
第二种解法:
import re
s = '123.33sdhf3424.34fdg323.324'
num = re.findall('\d+\.?\d*',s)
num = '+'.join(num)
print(num)
print(eval(num))
7.d={'k1':'v1','k2':[1,2,3],('k','3'):{1,2,3}}
请用程序实现:
1)输出上述字典中 value
为列表的key
d={'k1':'v1','k2':[1,2,3],('k','3'):{1,2,3}}
ret = [k for k in d if type(d[k]) is list]
print(ret)
2)如果字典中的key
是一个元组,请输出对应的 value
值。
d={'k1':'v1','k2':[1,2,3],('k','3'):{1,2,3}}
ret = [d[k] for k in d if type(k) is tuple]
print(ret)
3)d[('k','3')]
对应的 value是一个什么数据类型
集合
8.如果不使用@ wrapper
装饰器,请在a()之前加入一句代码,达到相同的效果
def wrapper(func):
def inner(*arg,**karg):
print(123)
func(*arg,**karg)
return inner
@wrapper #@wrapper == a = wrapper(a)
def a(arg):
print(arg)
a('nihao')
9.请处理文件7thquestions
,输出所有以’T’开头的行
with open('7thquestions') as f:
for i in f:
if i.startswith('T'):
print(i)
10.读登陆文件夹中的代码,请为这段代码画流程图
11默写10个字符串对象的内置方法,描述它的作用
12.有如下代码,写出调用的顺序以及结果
def f1():
print('func is func1')
def f2():
print('func is func2')
return 1
def f3(func1):
l1 = func1()
print('func is func3')
return l1
print(f3(f2))
输出结果:
func is func2
func is func3
1
13.创建一个闭包函数需要满足哪几点?
内部嵌套函数,内部调用外部变量
14.将时间打印出成一个2017/10/0118:08:15
的格式
将"2017-11-18"17:43:43″
转换为结构化时间
15.(1).用什么模块能知道文件夹存不存在?
import os
os.path.isdir()
(2).怎么获取这个文件夹的大小?
循环文件夹里所有的大小,然后把大小加起来
16.请写出一个能够匹配手机号的正则语句
1[345678][\d]{9}
17.有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?(编程题)
cnt = 0
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if i == j or i == k or j == k:
continue
cnt += 1
print(cnt,[i,j,k])
二:面向对象
1.请简述类、对象、实例化、实例这些名词的含义
2.面向对象的三大特性是什么?
封装,多态,继承
3.有一个类定义:
class Persondef:
def init(self,name,age):
self.name = name
self.age = age
(1)初始化10个不同的对象
(2)求最高age的对象的name
obj = max(obj_list,key = lambda obj : obj.age)
print(obj.name)
4.模拟cs游戏
(1)人物角色分为警察和匪徒两种,定义成两个类
所有的警察的角色都是 police
每个警察都有自己独有名字,生命值,武器,性别
每个都可以开枪攻击敌人,切攻击目标不能是 police
所有的警察的角色都是 terrorist每个匪徒都有自己独有名字,生命值,武器,性别
每个都可以 开枪攻击敌人,切攻击目标不能是 terrorist
(2)实例化一个警察,一个匪徒,警察攻击匪徒,匪徒掉血(
(3)提取警察类和匪徒类相似之处 定义成一个父类,使用继承的方式减少代码重复