python基础测试题

答案答案不一定正确待修改中

仅供参考

"""
def grammar():
return '''
5个python数据类型:int整数型 folat浮点型 tuple元组 str字符串 list列表 set集合 dict字典 boll布尔 空None
5个python内置函数:print打印 input输入 len() del删除 ord()ascil转化为数字 chr()数字转化为ascil int()等 format() eval()将字符串当成有效的表达式来计算结果
5个python基本类库:random 随机数模块
time 时间模块
datetime 日期模块
calendar 日历模块
inspect 判断是否为数据类型的模块
collections 可以添加计数器和判断是否为迭代对象or迭代器
functools 不晓得是啥模板但是与reduce相关
matc 数学模块
sys 系统模块
os 模块
re 正则
multiprocessing 创建子进程
threading 创建子进程
socket 创建服务器

函数参数args:是一个元组,存放多传的位置参数
函数参数kwargs:是一个字典,存放多传的关键字参数
'''
print(grammar())

def concept():
return '''
变量:可以进行赋值操作的标识符参数
函数:一段可以执行特定功能的代码
类和对象:类是具有相同特征的一类事物的抽象概念,对象是类的具体实例
匿名函数:关键字lambda定义的函数,用完即释放,不用定义函数名
闭包:具有执行环境的函数
'''
print(concept())

# 正则表达式中特殊符号的作用
def regular():
return '''
$:以该符号前一位字符结尾
^:在正则表达式开始表示从开头匹配,用在中括号里内容的开始表示非中括号里内容
|:逻辑或
.:匹配除\n以外的任意字符
?:至多出现一次
*:出现任意次
+:至少出现一次
():表示分组
[]:出现括号里任一字符就可匹配成功
{}:表示前一字符出现的次数
'''
print(regular())

# 关键字作用
def keywords():
return '''
pass:占位语句,无实际意义
return:函数返回
continue:跳出当次循环,并开始下一循环
break: 跳出循环
assert:断言,用于调试
class:定义类
def:定义函数
global:声明全局变量
nonlocal:声明外部函数的局部变量
lambda:定义匿名函数
'''
print(keywords())

# python2与python3区别:至少5点
def difference():
return '''
1.python2中有print语句,python3中变为print()函数
2.python2中的raw_input,python3中变为input()函数
3.python2中有long长整型,python3中统一为int整型
4.python2中用<>或!=表示不等于,python3中统一为!=
5.python2中默认不支持utf-8编码,python3中默认支持
'''


# 内置方法的触发时机
def trigger_time():
return '''
__init__:创建对象初始化时
__del__:对象即将销毁时
__new__:创建对象时
__enter__:开始执行with语句时
__exit__:退出with语句时
__call__:当对象被当成函数调用时
__getattr__:获取对象不存在的属性时
__getitem__:以字典方式获取对象不存在的属性时
__copy__:浅拷贝对象时
__deepcopy__:深拷贝对象时
'''
"""
# 列表排序:算法不限,支持升序和降序,支持任意类型的元素排序
def sort_list(lt, reverse=True, key=None):
n = len(lt)
for i in range(n-1):
for j in range(n-1-i):
if key == None:
d = lt[j] < lt[j+1] if reverse else lt[j] > lt[j+1]
else:
d = key(lt[j]) < key(lt[j+1]) if reverse else key(lt[j]) > key(lt[j+1])
if d:
lt[j] ,lt[j+1] = lt[j+1] ,lt[j]
return lt

# 测试代码
lt = [1,2,3,3,2,1,1]
print(sort_list(lt))

d = [{'age': 20}, {'age': 19}, {'age': 18}]
print(sort_list(d, reverse=False, key=lambda x: x['age']))

# 时间字符串转字典
# 时间信息:'2019-03-22 20:23:35'
# 字典信息:{'year': 2019, 'monty': 3, 'day': 22, 'hour': 20, 'minute': 23, 'second':35}
import re
def str_to_dict(s):
time_info = re.findall(r'\d+',s)
lt = ['year','monty','day','hour','minute','second']
d = {}
n = 0
for i in lt:
d[i] = int(time_info[n])
n += 1
return d

s = '2019-03-22 20:23:35'
print(str_to_dict(s))

'''
传入一个大写字母,打印图型,如:传入'D',打印
AAAAAAA
ABBBBBA
ABCCCBA
ABCDCBA
ABCCCBA
ABBBBBA
AAAAAAA
'''
def print_graph(ch):
lt = []
cha = ord(ch) - ord('A')
n = cha*2 + 1
s = 'A'*n
for i in range(cha + 1):
print(s)
lt.append(s)
s0 = s[:(i+1)] + chr(ord('A')+ i + 1)*(n - 2*(i+1)) + s[-(i+1):]
s = s0
lt.reverse()
for i in lt[1:]:
print(i)

print_graph('D')


# 1.写一个装饰器,查看函数执行的持续时间
# 2.在装饰器中打印执行了多长时间
# 3.递归函数除外
import time
def continue_time(func):
def wrapper(*args, **kwargs):
t1 = time.time()
ret = func(*args, **kwargs)
t2 = time.time()
print('{}'.format(t2 - t1))
return ret
return wrapper

@continue_time
def func(x,y):
time.sleep(2)
return x+y
print(func(1,2))
点赞