实验室产品开发python考核题
一. Python基础知识【2/14分】
python是一种动态语言,请谈谈你对python的变量和赋值过程的理解。
python是一种动态语言,动态语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。python的变量除了变量名没有任何意义,直到它被一个有意义的实体(对象)赋值。赋值过程即是一个绑定对象的过程,同一个变量可以绑定不同类型的对象,就像代数中的x,我们不对x做任何规定,x can be everything! 但是一旦 x = 对象A,x 的任何修改将是对对象A的修改,除了重新绑定了新的对象的这种修改。
- python是 编译还是解释型语言,它的这种特性主要解决了什么问题?
python是一种解释型的语言,这种特性主要解决了跨平台开发的问题,或者说具有跨平台开发比较容易的优势。
- 123python这个变量名合法吗?python区分大小写吗?
不合法,不能以数字开头;区分
- python注释的两种方式是?
#单行注释
‘’‘
多行注释:
三单引号或三双引号
’‘’
- 编写项目或程序时,函数或模块内部应该(),函数或模块外部应该()【选择:高耦合,低耦合】,并谈谈你的理解。
高耦合,低耦合;
高耦合度使得模块或函数体内部的关系更加紧密,能够充分实现某一特定的功能;低耦合度使得不同功能模块或函数之间相对独立,根据特定功能去使用某一功能模块或函数时更加高效和便捷,也更便于开发和维护。
- python如何获取用户输入?请写出方法。
使用内置的 input(“这是提示:”) 函数
- 通过命令提示符运行python脚本的方法是
将python解释器的所在路径加入用户或系统的环境变量path中,在任意目录下打开命令行,键入
python 文件路径/文件名.py
或直接在python解释器所在目录打开命令行,键入如上命令即可执行
建议配置path,在python程序目录命令行直接执行 python 文件名.py
二.Python基本的数据类型的使用【2/16分】
- 字符串切片 “〇一二三四五六七八九十”[1:8:2] 结果是:
‘一三五七’
- List[]和tuple()即列表与元组的最大区别是?
list是可变数据类型,tuple是不可变数据类型
- 集合中的元素有序吗? 它的符号是什么?如何初始化一个空集合赋值给变量?
无序 set() a = set()
- python基本数据类型中用的最多的是列表,a = [],请写出代码,按顺序分别在列表a的尾部追加1,2,3……10,并打印出a
1 | |
- 请写出python字符串格式化常用的两种方法(知道几种写几种)
1 | |
- 写出遍历字典键值的方法,(代码实现,要求每次print(key),print(value))
1 | |
- python的列表支持负索引吗?如果支持,请写出一个例子。
1 | |
- a是一个列表,b是一个列表,那么表达式a+b做了什么,表达式a*3做了什么,表达式a-b做了什么?如果把a,b都换成一个字符串对象呢?
对于列表和字符串,+ 操作都实现了返回一个拼接后的副本,* 操作实现了返回一个多次拼接的副本,均不支持 ‘-’ 操作
三. Python语句【3/15分,除提高】
- python中的pass语句是干什么的?
pass不做任何事情,一般用做占位语句,保持函数内部或判断循环语句块内部等结构的完整性,如果一个函数体内部或判断循环语句块内部什么都不写,将会报错;写上pass就不会报错。一般用于编程开发前期做模块整体架构时使用。
- python中的break,continue语句的作用,试解析
break:跳出最近一层循环体 continue:结束当次循环,继续执行下一次
- python的return语句可以返回多个值吗?如果可以,是以字典,列表,集合,元组的哪种方式返回的呢?
可以,元组
- 循环语句的使用方法(请分别写出用遍历range对象和while(条件)实现的循环)
1 | |
- 条件判断语句的使用方法,请写出(70-100:优秀,60-70:及格,0-60:不及格,<0:成绩登错了)的代码实现
1 | |
- 【提高题】:抛出异常是(raise)语句,(请填写一个关键字)【2分】
四.Python内建(built-in)函数(方法)【2/12分】
- 浮点数间运算存在不确定尾数,可以四舍五入保留一定位数的内建函数是:round()
- 如果想获取字符串,列表的长度,可以使用的内建函数是:len()
- 如果想求一个列表[int,int,int,int]的所有数字的和,可以快捷使用的内建函数是(**sum())快速找到列表最大值的内建函数(max()**)
- 想获取一个对象的特征(identity,,即对象的内存地址映射,具有唯一性),可以使用的内建函数是:id()
- 可以准确获得对象的类型信息的内建函数是:type()
- X=input(),x默认为字符串, 若用户输入的是数字5, 要想x为数字, 可以在input前面加入什么函数(有个内建函数):eval()
五.Python标准库的使用【4/4分】
- 请写出你所知道的python标准库(至少两个),并写出其常用的方法(至少对一个进行展开)【python的标准库,就是不用额外安装,python自带的,可以直接from import使用的库 】
常见的标准库:os random re datetime math
……
六.Python呼叫外援(引入第三方库)【4/4分,除提高】
- 如果你想安装Django2.0版本的第三方库,使用pip命令如何操作
1 | |
- 【提高题】如何批量安装requirments.txt文件里对应的第三方库以及如何查看自己当前的库环境,并输出到requirments.txt文件?【5分】
1 | |
1 | |
七.Python文件操作【5/5分,除提高】
- 请写出以只读方式打开同目录下a.txt文件,并打印出它的第一行内容的,然后关闭文件的代码实现
1 | |
- 【提高题】使用with open() as file:的语句和直接用open打开文件的区别是什么?【5分】
with open 语句不用手动关闭文件,到程序跳出with open语句块,自动关闭文件。
八.硬核编程【10/30分,除提高】
- 用python实现斐波那契数列(1,1,2,3,5,8,13…)(要求给出项数n, 打印出n之前(包括n的)斐波那契数列
【提示:建议使用两个数进行循环推演,放入列表;不建议使用递归】
1 | |
一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
编程判断回文数
【提示:python很快捷和高效,类型的转换很灵活,不一定非得模几除几的取位,试着把它转化为字符串试试】
1 | |
编程实现如下矩阵
给出n, 输出矩阵
如, 给出5, 如下
1 1 1 1 1
1 2 2 2 2
1 2 3 3 3
1 2 3 4 4
1 2 3 4 5
【提示 :
建议选择二维列表实现
判断 角标最小值即可
如: i<j 则该坐标对应值为i+1
如5的坐标为(4,4), 所以为i+1=5】
1
2
3
4
5
6n = eval(input())
for i in range(n):
for j in range(n):
print(i+1 if i<j else j+1,end = "")
print()4.【提高题】:
给出一个数n,输出矩阵
如给出5
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
如给出6
1 1 1 1 1 1
1 2 2 2 2 1
1 2 3 3 2 1
1 2 3 3 2 1
1 2 2 2 2 1
1 1 1 1 1 1
【提示:请继承如上二题的思想,把判断维度扩大下,关键词:边距】【8分】
1
2
3
4
5
6
7n = eval(input())
for i in range(n):
for j in range(n):
a = [i-0,n-1-i,j-0,n-1-j]
print(min(a)+1,end="")
print()