首页 > 编程语言 >【python基础收尾篇】python基础试卷 #试卷分析

【python基础收尾篇】python基础试卷 #试卷分析

时间:2024-11-12 21:15:43浏览次数:3  
标签:函数 python 试卷 list 列表 Python ls 收尾

 python基础篇收尾了,让我们给自己一个检测吧!(后文解析)

python基础试卷
一、选择题【15 * 1 = 15分】
1.	Python中的“深拷贝”与“浅拷贝”不同在于:
   A. 深拷贝比浅拷贝执行速度快
   B. 深拷贝允许修改原始对象,而浅拷贝不允许
   C. 深拷贝创建对象的副本及其嵌套对象的副本,而浅拷贝只复制对象的顶层
   D. 浅拷贝使用更多内存

2.	Python中的切片操作可以用来做什么?
A. 修改列表元素
B. 访问列表的子序列
C. 删除列表元素
D. 查找列表元素

3.	在Python中,哪个关键字用于跳出当前循环?
A. break
B. continue
C. pass
D. exit

4.	下列哪个是Python中的不可变数据类型?
A. 字符串
B. 元组
C. 字典
D. 集合

5.	在Python中,range(5)会生成一个什么序列?
A. [0, 1, 2, 3, 4]
B. [1, 2, 3, 4, 5]
C. [0, 1, 2, 3, 4, 5]
D. [5]

6.	Python中的enumerate()函数用于什么?
A. 对列表进行排序
B. 获取列表的索引和值
C. 查找列表中的元素
D. 删除列表中的元素

7.	Python中的列表推导式用于什么?
A. 遍历列表元素
B. 修改列表元素
C. 创建列表
D. 查找列表中的元素

8.	下列哪个是Python中的字典方法,用于获取字典中所有键的列表?
A. keys()
B. values()
C. items()
D. get()

9.	Python中的set()函数用于创建什么数据类型?
A. 列表
B. 元组
C. 字典
D. 集合

10.	在Python中,如何获取一个列表中的最后一个元素?
A. list[-1]
B. list.last()
C. list.end()
D. list.final()

11.	在Python中,如何定义一个函数,使其接受任意数量的参数?
A. 使用*args
B. 使用**kwargs
C. 使用*parameters
D. 使用**vars

12.	在Python中,如何检查一个变量是否为None?
A. if var == None:
B. if var is None:
C. if var is not None:
D. if not var:

13.	哪种数据类型不属于Python的内置数据类型?
A. 列表
B. 字典
C. 自定义对象
D. 元组

14.	在Python中,如何创建一个只包含唯一元素的列表?
A. 使用list()函数
B. 使用set()函数
C. 使用unique()方法
D. 使用distinct()方法

15.	在Python中,如何复制一个列表?
A. new_list = old_list
B. new_list = old_list.copy()
C. new_list = list(old_list)
D. new_list = [x for x in old_list]

二、简答题【10*3 =30分】
1.	python中的索引是如何定义的?


2.	列表推导式和字典推导式的作用是什么?列举一两个


3.	列表和元组的区别是什么?


4.	break、continue、pass的作用分别是什么?


5.	深拷贝和浅拷贝的区别是什么?


6.	为什么使用* args,** kwargs?

7.	简述python中函数的参数传递类型?


8.	举例说明什么是闭包函数?


9.	简述局部变量和全局变量的区别?


10.	什么时候使用global关键字?什么时候用nonlocal关键字?



三、编程题【11*5=55分】
1.	编写一个Python函数,接受一个字符串作为参数,判断一个字符串是不是回文字符串,返回值是一个布尔类型。
  
 
2.	编写一个Python程序,解决以下问题:现在有三个数,分别为a,b,c,它们之间的和为19,取值范围1-9(包括9),但是a,b,c之间不相等,求出能组成多少个互不相同并且不重复的数字?。
 
3.	编写一个Python程序,使用列表推导式创建一个包含1到20之间所有平方数的列表。
 
4.	编写一个递归函数,求n的阶乘。
 
5.	编写一个python函数,计算并返回100到200之间所有的素数列表。
 
6.	编写一个python函数,可接收一个数字列表,并返回其中的最大值和最小值, 要求:不可以在自定义函数内调用python内置函数。
 
7.	编写一个python函数,可接收一个列表和要查找的值key,使用顺序查找法,输出key在列表中的下标,找不到的话,输出-1,要求:不可以在定义函数内调用python内置方法。
 
8.	编写一个递归函数,返回第n项斐波那契数列的值。
 
9.	使用列表推导式,生成包含10个范围在[10,30]之间随机数的列表。
 
10.	编写一个python函数,接收一个整型变量n为参数,输出n行的九九乘法表。
 
11.	编写一个python函数,接收一个整型变量n为参数,输出n行的杨辉三角形。
 


 答案解析:

【1】选择题部分:

1、c        2、b        3、a        4、ab(多选)        5、a        6、b        7、c        8、a        9、d

10、a        11、ab(多选)        12、bd(多选)        13、c        14、b        15、bcd(多选)

选择题难点注意:

第4题,字符串和元组一样,也是不可变的数据类型哦!虽然字符串有lower()此类让字符串变小写的函数,但是那是生成了一段新的字符串,并不是改变原有的字符串而来。

第12题:None类型不能通过==判断一个变量是否是该类型,需要用 is

第15题:bcd分别都是创建了一个新的列表达到复制的目的,而a是直接将原列表赋值

【2】简答题部分:

1.    python中的索引是如何定义的?

答:python中的索引就是有序序列的下标,且python中的下标有正向下标和反向下标,正向下标从0开始,反向下标从-1开始。
2.    列表推导式和字典推导式的作用是什么?列举一两个

答:简单高效的创建列表和字典。

ls = [x for x in range(10)]

list_of_tuples = [('a', 1), ('b', 2), ('c', 3)]

dictionary = {key: value for key, value in list_of_tuples}

3.    列表和元组的区别是什么?

语法不同:列表用[],元组用()

操作不同:列表可增加、删除、修改,元组不可以

4.    break、continue、pass的作用分别是什么?

break:退出本层循环

continue:跳出本次循环、继续下一次循环

pass:占位符

5.    深拷贝和浅拷贝的区别是什么?

深拷贝:复制对象的值和对象嵌套的可变对象的值

浅拷贝:复制对象的值 引用对象嵌套的可变对象

6.    为什么使用* args,** kwargs?

用二者的目的是不定长传参

7.    简述python中函数的参数传递类型?

  1. 位置参数
  2. 关键字参数
  3. 默认参数
  4. 位置不定长参数
  5. 关键字不定长参数

8.    举例说明什么是闭包函数?

  1. 函数嵌套
  2. 内函数使用外函数局部变量
  3. 外函数将内函数名返回

def out_fun(base):

def in_fun(exp):

return exp**base

return in_fun

9.    简述局部变量和全局变量的区别?

  1. 作用域不同:局部变量只能在函数内起作用,全局变量在整个程序起作用
  2. 生命周期不同:局部变量函数调用时分配内存调用结束释放内存,全局变量定义时分配内存程序结束才释放内存

10.    什么时候使用global关键字?什么时候用nonlocal关键字?

  1. 在函数内想将局部变量声明为全局变量,使用global
  2. 在内层函数内使用外层函数局部变量,使用nonlocal

【3】代码题部分: 

1、编写一个Python函数,接受一个字符串作为参数,判断一个字符串是不是回文字符串,返回值是一个布尔类型

分析:这题用切片最简洁,正序==倒序

def fun1(s):
    if s[::] == s[::-1]:
        return True
    else:
        return False

2.    编写一个Python程序,解决以下问题:现在有三个数,分别为a,b,c,它们之间的和为19,取值范围1-9(包括9),但是a,b,c之间不相等,求出能组成多少个互不相同并且不重复的数字?。


 分析:这题为多层嵌套,最后的数字不相同我们可以用多个  !=  组合或者用集合,这里我用集合

这里双层嵌套配合条件判断规模更小

cot=0
for a in range(1, 10):
    for b in range(1, 10):
        c=19-a-b
        if 1<=c<=9:
            s={a,b,c}
            if len(s) == 3:
                print(f'{a}{b}{c}',end='  ')
                cot+=1
                if cot%5==0:
                    print()


3.    编写一个Python程序,使用列表推导式创建一个包含1到20之间所有平方数的列表。


 分析:一步得出

ls=[x*x for x in range(1,21)]


4.    编写一个递归函数,求n的阶乘。
 

分析:递归注意不要死循环

def rec(n:int):
    if n==1:
        return 1
    else:
        return n*rec(n-1)


5.    编写一个python函数,计算并返回100到200之间所有的素数列表。
 

分析:列表的元素增加用append,素数判断range为了简化规模可以到int(i**0.5)+1

def fun():
    ret=[]
    for i in range(100,201):
        for j in range(2,int(i**0.5)+1):
            if i%j==0:
                break
            else:
                ret.append(i)
        return  ret


6.    编写一个python函数,可接收一个数字列表,并返回其中的最大值和最小值, 要求:不可以在自定义函数内调用python内置函数。

分析:打擂台法

def fun(ls:list):
    max1=ls[0]
    min1=ls[0]
    for i in ls:
        if i > max1:
            max1=i
        if i < min1:
            min1=i
    return  max1,min1


 
7.    编写一个python函数,可接收一个列表和要查找的值key,使用顺序查找法,输出key在列表中的下标,找不到的话,输出-1,要求:不可以在定义函数内调用python内置方法。
 

分析:索引查找与值的对应

def fun(ls:list,key):
    for i in range(len(ls)):
        if key == ls[i]:
            return i
        else:
            return  -1


8.    编写一个递归函数,返回第n项斐波那契数列的值。

分析:要知道斐波那契数列前两项和后几项的规律

def fei(n:int):
    if n == 1 or n == 2:
        return 1
    else:
        return fei(n-1)+fei(n-2)


 
9.    使用列表推导式,生成包含10个范围在[10,30]之间随机数的列表。
 

分析:这题用随机数函数random(导入random库),顺便使用列表推导式

import random

ls=[random.randint(10,30)   for  i  in range(10)]

print(ls)


10.    编写一个python函数,接收一个整型变量n为参数,输出n行的九九乘法表。

分析:嵌套,对齐可以用制表符\t或者在{i*j:<2d}

def fun(n:int):
    for i in range(1,n+1):
        for j in range(1,i+1):
            print(f'{j}*{i}={i*j}',end='\t')
        print()


 
11.    编写一个python函数,接收一个整型变量n为参数,输出n行的杨辉三角形。
 

分析:列表的嵌套,首先列表推导式生成n个【1】构成的嵌套列表,后面的两层循环嵌套分别是准备遍历每一行和每一列,if——else语句为了给  ls[i][j]赋值,赋值原理是上一行的对应列和前一列之和,最后大循环外开始打印三角:for遍历行,打印列表内层即ls[i]

def fun(n:int):
    ls=[[1]*i for  i in range(1,n+1)]
    for i in range(n):
        for j in range(i+1):
            if j==0 or j==i:
                pass
            else:
                ls[i][j]=ls[i-1][j]+ls[i-1][j-1]

    for i in range(n):
        print(ls[i])

标签:函数,python,试卷,list,列表,Python,ls,收尾
From: https://blog.csdn.net/bananapai/article/details/143721400

相关文章

  • 【Playwright + Python】系列(十)利用 Playwright 完美处理 Dialogs 对话框
    哈喽,大家好,我是六哥!今天我来给大家分享一下如何使用playwight处理Dialogs对话框,面向对象为功能测试及零基础小白,这里我尽量用大白话的方式举例讲解,力求所有人都能看懂,建议大家先收藏,以免后面找不到。......
  • python-27-Python ORM系列之彻底搞明白ORM概念,对ORM进行封装结合FastAPI实现数据库的
    python-27-PythonORM系列之彻底搞明白ORM概念,对ORM进行封装结合FastAPI实现数据库的增删改查,联表查询等接口一.简介在Python基础系列ORM部分为大家介绍了如何搭建MySQL数据和MySQL一些访问配置,同时也介绍了pymysql库的封装来实现对数据库的增删改查功能,但是截止以上都没......
  • 第六课 Python之模块
    一、模块的介绍(1)python模块,是一个python文件,以一个.py文件,包含了python对象定义和pyhton语句(2)python对象定义和python语句(3)模块让你能够有逻辑地组织你的python代码段。(4)把相关的代码分配到一个模块里能让你的代码更好用,更易懂(5)模块能定义函数,类和变量,模块里也能包含可执行的......
  • python 工作中常用技巧
    json格式化后中文乱码问题在Python中,使用json.dumps()将数据序列化为JSON字符串时,默认情况下,非ASCII字符(包括中文字符)会被转义为Unicode码点(例如\uXXXX)。这是为了确保生成的JSON字符串在任何环境中都是有效的,并且能够被正确解析。如果你希望生成的JSON字符串直接包含中文字符......
  • [AIGC]使用阿里云Paraformer语音识别录音识别 API 进行音频处理 —— 完整流程及代码
    文章目录一、前提准备1.阿里云账号2.开通录音识别服务3.获取APIKey和AccessToken二、阿里云录音识别API的主要功能介绍三、完整代码流程1.导入依赖库2.设置环境变量3.生成Token4.上传文件并发起识别请求4.1请求4.2请将'{api-key}'替换为你的apikey,'{ta......
  • Python连接VNC
    #-*-coding:utf-8-*-"""安装命令:pipinstallopencv-pythonvncdotool-ihttps://mirrors.aliyun.com/pypi/simple"""importctypesimporttimefromloggingimportshutdownimportrandomimportcv2,numpyasnpfromvncdotool......
  • 【PAT_Python解】1125 子串与子列
    原题链接:PTA|程序设计类实验辅助教学平台Tips:以下Python代码仅个人理解,非最优算法,仅供参考!多学习其他大佬的AC代码!测试点5超时:defmin_window_substring(s,p):len1=len(s)len2=len(p)mixn=0min_length=len1+1#设置为一个较大的值......
  • debian11 使用python3 启动http文件服务器和ftp服务器脚本
    http文件服务器start_http_server.sh#!/bin/bashport=$1host=0.0.0.0functionUsage(){echo-e"Usage:${0}[port]"exit0}if[[${port}==""]];thenUsagefi#检查端口号是否被占用check_port=`netstat-ant|grepLISTEN|grep${port}......
  • Python科学计算的利器:Scipy库深度解析
    Python科学计算的利器:SciPy库深度解析在数据科学、工程计算和数学建模领域,Python的SciPy库是不可或缺的强大工具。SciPy以NumPy为基础,提供了丰富的函数和算法,用于数值积分、优化、线性代数、信号处理等科学计算任务。本文将详细介绍SciPy库的核心模块和功能,帮助你深入理解......
  • Python的Web请求:requests库入门与应用
    Python的Web请求:requests库入门与应用在Python中,进行网络请求和获取数据是许多应用程序的基础功能。requests库是Python中最流行的HTTP库之一,它以简洁、易用、功能强大的特点著称,可以帮助开发者高效地进行各种类型的Web请求。本文将带你快速上手requests库,并展示如何在实际......