python基础笔试题

本文整理了关于Python基础知识的笔试题目,涵盖了文件目录遍历、日期计算、列表操作、字典排序、字符串处理、列表生成式、元组、字典、数据结构、类与对象、异常处理等多个方面,旨在帮助读者巩固Python基础并为面试做准备。
摘要由CSDN通过智能技术生成

1.
    """
    补充缺失的代码
        def print_directory_contents(sPath):
        这个函数接收文件夹的名称作为输入参数
        返回该文件夹中文件的路径
        以及其包含文件夹中文件的路径
    """

    import os


    def print_directory_contents(sPath):
        for child_path in os.listdir(sPath):#遍历sPath下的所有文件
            child_path = os.path.join(sPath, child_path)#改成完整路径
            if os.path.isdir(child_path):#判断是否是文件夹
                print_directory_contents(child_path)#递归调用
            else:
                print(child_path)#不是 打印文件名


                
2.
    """"
    输入日期, 判断这一天是这一年的第几天?
    """

    import datetime


    def dayofyear():
        year = int(input("year:"))
        month = int(input("month:"))
        day = int(input("day:"))
        date1 = datetime.date(year=year, month=month, day=day)  # 今天的日期
        date2 = datetime.date(year=year, month=1, day=1)  # 今年的第一天日期
        return (date1 - date2).days + 1  # 日期相减


3.
    """"
    打乱一个排好序的list对象alist?
    """

    import random

    alist = [1, 2, 3, 4, 5, 6, 7]
    random.shuffle(alist)
    print(alist)


    
4.
    """
    现有字典 d= {'a':24,'g':52,'i':12,'k':33}请按value值进行排序?
    """
  

  d = {'a': 24, 'g': 52, 'i': 12, 'k': 33}
    new_d = sorted(d.items(), key=lambda x: x[1])
    print(new_d)

    """
    这里的d.items()实际上是将d转换为可迭代对象,迭代对象的元素为 (‘a’,24)、(‘g’,252)、(‘i’,12)、
    (‘k’,33),items()方法将字典的元素 转化为了元组,而这里key参数对应的lambda表达式的意思则是选取元组中的第二个元素作
    为比较参数(如果写作key=lambda item:item[0]的话则是选取第一个元素作为比较对象,也就是key值作为比较对象。
    lambda x:y中x表示输出参数,y表示lambda 函数的返回值),所以采用这种方法可以对字典的value进行排序。注意排序后的返回值是一个list,
    而原字典中的名值对被转换为了list中的元组。"""

5.
    """
    给一个可迭代对象 例如alist = [("a", 1), ("b", 2), ("c", 3)]
    生成字典
    """
  

 alist = [("a", 1), ("b", 2), ("c", 3)]
    dict1 = {k: v for (k, v) in alist}
    print(dict1)


    
6.
"""
    请反转字符串 "aStr"?
    """

    str1 = "aStr"
    str1 = str1[::-1]
    print(str1)


    
7.
    """
    将字符串 "k:1 |k1:2|k2:3|k3:4",处理成字典 {k:1,k1:2,...}
    """

  

 str1 = "k:1 |k1:2|k2:3|k3:4"
    dict = {}
    for item in str1.split("|"):
        item = item.strip()
        k, v = item.split(":")
        dict[k] = v
    print(dict)

8.
    """
    请按alist中元素的age由大到小排序
    alist = [{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}]
    """
    此题和第四题类似
    
    

alist = [{'name': 'a', 'age': 20}, {'name': 'b', 'age': 30}, {'name': 'c', 'age': 25}]
    new = sorted(alist, key=lambda x: x["age"], reverse=True)  # reverse 逆序排列
    print(new)


9.
    下面代码的输出结果将是什么?
    list = ['a','b','c','d','e']
    print(list[10:])
    代码将输出[],不会产生IndexError错误,就像所期望的那样,尝试用超出成员的个数的index来获取某个列表的成员。例如,尝试获取list[10]和之后的成员,会导致IndexError。然而,尝试获取列表的切片,开始的index超过了成员个数不会产生IndexError,而是仅仅返回一个空列表。这成为特别让人恶心的疑难杂症,因为运行的时候没有错误产生,导致Bug很难被追踪到。

10.
    写一个列表生成式,产生一个公差为11的等差数列
    
    两种思路:
    第一种
        alist = [i for i in range(0, 100, 11)]
    第二种:
        alist = [i*11 for i in range(0, 10)]

11.
    """
    给定两个列表,怎么找出他们相同的元素和不同的元素?
    a = [1,2,3]
    b = [2,3,5]
    """
    #先把列表改成集合,在取交集 差集
  

  a = [1, 2, 3]
    b = [2, 3, 4]
    c = set(a) & set(b)
    d = set(a) ^ set(b)
    print(c)
    print(d)

12.
    """
    请写出一段python代码实现删除list里面的重复元素?
    l1 = ['b','c','d','c','a','a']
    """

    l1 = ['b', 'c', 'd', 'c', 'a', 'a']
    print(list(set(l1)))

13.
    python中内置的数据结构有几种?
    a. 整型 int、 长整型 long、浮点型 float、 复数 complex

    b. 字符串 str、 列表 list、 元祖 tuple

    c. 字典 dict 、 集合 set

    d. Python3 中没有 long,只有无限精度的 int

14.
    python新式类和经典类的区别?
    a. 在python里凡是继承了object的类,都是新式类

    b. Python3里只有新式类

    c. Python2里面继承objec

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值