zoukankan      html  css  js  c++  java
  • 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 '''
    $:以该符号前一位字符结尾
    ^:在正则表达式开始表示从开头匹配,用在中括号里内容的开始表示非中括号里内容
    |:逻辑或
    .:匹配除 以外的任意字符
    ?:至多出现一次
    *:出现任意次
    +:至少出现一次
    ():表示分组
    []:出现括号里任一字符就可匹配成功
    {}:表示前一字符出现的次数
    '''
    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))
  • 相关阅读:
    Linux安装phpMywind
    CentOS7安装virtualbox
    MySQL3534
    DIV盒子介绍
    HTML选择器
    人脸检测
    openblas下载安装编译
    DeepLearning网络设计总结
    Linux命令替换字符串
    Y7000联想拯救者gtx1050Ti安装cuda9.0
  • 原文地址:https://www.cnblogs.com/wenjiangtao/p/10589661.html
Copyright © 2011-2022 走看看