Python - - 练习题

一 基础知识:
1,文件操作有哪些模式?简述各模式的作用
r w a rb wb ab
2, s = "hello,world!" 请使用strip 方法去除字符串两端的“**”好
s.strip("*")
3,用户输入一个任意数字n,求1-n之间所有数字中的奇数
range(0,10,2)
4,s = "hakakhlkshfkskjakf",去除s字符串中重复的字母
lst = []
for i in s:
if i not in lst:
lst.append(i)
5,
a = 10
b = 20
def test(a,b):
print(a,b)
c = test(b,a)
以上代码打印出来的值a,b,c分别是什么,为什么
20,10,None
6,s = "123.33sdhf3424.34fdg323.324asd123",计算字符串中所有数字的和
本题结果应为:123.33+3424.34+323.32
s = "123.33sdhf3424.34fdg323.324asd"
from re import findall
ret = findall('\d+.?\d|\d',s)
# ret = [float(i) for i in ret]
# print(sum(ret))
ret = '+'.join(ret)
print(eval(ret))
7,
d = {"k1":"v1","k2":[1,2,3],("k","3"):{1,2,3}}
请用程序实现
1 输出上诉字典中value为列表的key
for k in d:
if type(d[k]) is list:
print(k)
2 如果字典中的key是要给元组,请输出对应的value值
for k in d:
if type(k) is tuple:
print(d[k])
3 d[("k","3")]对象的 value是一个什么数据类型
集合

8,如果不使用@wrapper装饰器,请在a()之前加入一句代码,达到相同的效果
def wrapper(func):
def inner(args, **kwargs):
func(
args, **kwargs)
return inner

@ wrapper
def a(arg):
    print(arg)
a = warpper(a)    # 答案
a()

9,请处理文件7th_questions.输出所有已"T"开头的行
with open("7th_questions",encoding="utf-8") as f:
for i in f:
if i.startswith("T"):
print(i)
10,读登录文件夹中的代码,请为这段代码画流程图

11,默写10个字符串对象的内置方法,描述作用

12,代码如下,写出调用顺序以及结果
def f1():
print("funcname is f1")
def f2():
print("funcname is f2")
return "f2"
def f3(func1):
lst = func1()
print("funcname is f3")
return lst

print(f3(f2))

# 结果呈现
funcname is f2
funcname is f3
f2

13,创建一个闭包函数需要满足那几点?
嵌套函数,外部函数包含内部方法
14,将时间打印出成 2018/10/10 10:10:10 的格式
将 "2018-11-11" 17:11:11 转换为结构化时间
time.structtime
15,用模块能知道文件夹存不存在?
os.path.isdir
怎么获取文件夹的大小?
循环文件夹所有的文件,把大小加起来
16,写出一个能匹配手机号的正则语句
1[3456789][\d]{9}
17,有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
count = 0
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if i == j or j == k or j == k:
continue
count += 1
print(str(i)+str(j)+str(k))
二,面试对象
1,简述类,对象,实例化,实例这些名词的含义

2,面向对象的三大特性
封装,继承,多态
3,有一个类定义:
class Person:
def init(self,name,age):
self.name = name
self.age = age
# 1 初始化10个不同的对象
# 2 求最好age的对象的name
obj = max(obj_lst,key=lamdda obj : obj.age)
print(obj.name)
4,模拟cs游戏
1 人物角色分为警察和匪徒两种,定义成两个类
所有的警察都角色都是police
每个警察都有自己独有的名字,生命值,武器,性别
每个都可以开枪攻击敌人,且攻击目标不能是police

    所有的匪徒都角色都是terrorist
    每个匪徒都有自己独有的名字,生命值,武器,性别
    每个都可以开枪攻击敌人,且攻击目标不能是terrorist

2 实例化一个警察,一个匪徒,警察攻击匪徒,匪徒掉血

3 提取警察类和匪徒类相似之处定义成一个父类,使用继承的方法减少代码重复

5,读代码
class Base:
def f1(self):
self.f2()

    def f2(self):
        print("...")

class Foo(Base):
    def f2(self):
        print("999")

obj = Foo()
obj.f1()

# 1 面向对象中的self指的是什么
    # 对象自己obj
# 2 运行结果并简述原因
    # 结果"999"

6,有一个类的init方法如下:
class Person:
def init(self,name,age,sex,weight):
self.name = name
self.age = age
self.sex = sex
self.weight = weight
# 假设有100个Person对象
# 如两个对象的obj1,obj2 的name和sex属性相同
# 即obj1.name == obj2.name and obj1.sex == obj2.sex
# 我们认为两个对象为同一个对象,已知一个列表中的100个对象,对这100个对象进行去重
# 提示:重写Person类中的两个内置方法

posted @ 2018-10-15 11:44  小Q渺晓  阅读(269)  评论(0编辑  收藏  举报