实验室产品开发python考核题

一. Python基础知识【2/14分】

  1. python是一种动态语言,请谈谈你对python的变量和赋值过程的理解。
    

python是一种动态语言,动态语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。python的变量除了变量名没有任何意义,直到它被一个有意义的实体(对象)赋值。赋值过程即是一个绑定对象的过程,同一个变量可以绑定不同类型的对象,就像代数中的x,我们不对x做任何规定,x can be everything! 但是一旦 x = 对象A,x 的任何修改将是对对象A的修改,除了重新绑定了新的对象的这种修改。

  1. python是 编译还是解释型语言,它的这种特性主要解决了什么问题?

python是一种解释型的语言,这种特性主要解决了跨平台开发的问题,或者说具有跨平台开发比较容易的优势。

  1. 123python这个变量名合法吗?python区分大小写吗?

不合法,不能以数字开头;区分

  1. python注释的两种方式是?

#单行注释

‘’‘

多行注释:

三单引号或三双引号

’‘’

  1. 编写项目或程序时,函数或模块内部应该(),函数或模块外部应该()【选择:高耦合,低耦合】,并谈谈你的理解。

高耦合,低耦合;

高耦合度使得模块或函数体内部的关系更加紧密,能够充分实现某一特定的功能;低耦合度使得不同功能模块或函数之间相对独立,根据特定功能去使用某一功能模块或函数时更加高效和便捷,也更便于开发和维护。

  1. python如何获取用户输入?请写出方法。

使用内置的 input(“这是提示:”) 函数

  1. 通过命令提示符运行python脚本的方法是

将python解释器的所在路径加入用户或系统的环境变量path中,在任意目录下打开命令行,键入

python 文件路径/文件名.py

或直接在python解释器所在目录打开命令行,键入如上命令即可执行

建议配置path,在python程序目录命令行直接执行 python 文件名.py

二.Python基本的数据类型的使用【2/16分】

  1. 字符串切片 “〇一二三四五六七八九十”[1:8:2] 结果是:

‘一三五七’

  1. List[]和tuple()即列表与元组的最大区别是?

list是可变数据类型,tuple是不可变数据类型

  1. 集合中的元素有序吗? 它的符号是什么?如何初始化一个空集合赋值给变量?

无序 set() a = set()

  1. python基本数据类型中用的最多的是列表,a = [],请写出代码,按顺序分别在列表a的尾部追加1,2,3……10,并打印出a
1
2
3
4
a = list()
for i in range(1,11):
a.append(i)
print(a)
  1. 请写出python字符串格式化常用的两种方法(知道几种写几种)
1
2
3
4
5
6
a = 1
b = 2
c = "I am a Integer:%d;Me too:%d"% (a,b)
d = "I am a Integer:{};Me too:{}".format(a,b)
print(c)
print(d)
  1. 写出遍历字典键值的方法,(代码实现,要求每次print(key),print(value))
1
2
3
a = {1:12,2:13}
for key,value in a.items():
print(key,value)
  1. python的列表支持负索引吗?如果支持,请写出一个例子。
1
2
a = [1,2,3,4]
print(a[-1]) #结果是4
  1. a是一个列表,b是一个列表,那么表达式a+b做了什么,表达式a*3做了什么,表达式a-b做了什么?如果把a,b都换成一个字符串对象呢?

对于列表和字符串,+ 操作都实现了返回一个拼接后的副本,* 操作实现了返回一个多次拼接的副本,均不支持 ‘-’ 操作

三. Python语句【3/15分,除提高】

  1. python中的pass语句是干什么的?

pass不做任何事情,一般用做占位语句,保持函数内部或判断循环语句块内部等结构的完整性,如果一个函数体内部或判断循环语句块内部什么都不写,将会报错;写上pass就不会报错。一般用于编程开发前期做模块整体架构时使用。

  1. python中的break,continue语句的作用,试解析

break:跳出最近一层循环体 continue:结束当次循环,继续执行下一次

  1. python的return语句可以返回多个值吗?如果可以,是以字典,列表,集合,元组的哪种方式返回的呢?

可以,元组

  1. 循环语句的使用方法(请分别写出用遍历range对象和while(条件)实现的循环)
1
2
3
4
5
6
for i in range(10):
print("这是第{}次".format(i))
j = 1
while(j<=10):
print("这是第{}次".format(j))
j += 1
  1. 条件判断语句的使用方法,请写出(70-100:优秀,60-70:及格,0-60:不及格,<0:成绩登错了)的代码实现
1
2
3
4
5
6
7
8
9
grade = eval(input("请输入成绩:"))
if grade>100 or grade<0:
print("输错了!")
elif grade>=70:
print("优秀!")
elif grade>=60:
print("及格!")
else:
print("不及格!")
  1. 【提高题】:抛出异常是(raise)语句,(请填写一个关键字)【2分】

四.Python内建(built-in)函数(方法)【2/12分】

  1. 浮点数间运算存在不确定尾数,可以四舍五入保留一定位数的内建函数是:round()
  2. 如果想获取字符串,列表的长度,可以使用的内建函数是:len()
  3. 如果想求一个列表[int,int,int,int]的所有数字的和,可以快捷使用的内建函数是(**sum())快速找到列表最大值的内建函数(max()**)
  4. 想获取一个对象的特征(identity,,即对象的内存地址映射,具有唯一性),可以使用的内建函数是:id()
  5. 可以准确获得对象的类型信息的内建函数是:type()
  6. X=input(),x默认为字符串, 若用户输入的是数字5, 要想x为数字, 可以在input前面加入什么函数(有个内建函数):eval()

五.Python标准库的使用【4/4分】

  1. 请写出你所知道的python标准库(至少两个),并写出其常用的方法(至少对一个进行展开)【python的标准库,就是不用额外安装,python自带的,可以直接from import使用的库 】

常见的标准库:os random re datetime math

……

六.Python呼叫外援(引入第三方库)【4/4分,除提高】

  1. 如果你想安装Django2.0版本的第三方库,使用pip命令如何操作
1
pip install Django==2.0
  1. 【提高题】如何批量安装requirments.txt文件里对应的第三方库以及如何查看自己当前的库环境,并输出到requirments.txt文件?【5分】
1
pip install -r requirments.txt
1
2
pip list
pip freeze > requirments.txt

七.Python文件操作【5/5分,除提高】

  1. 请写出以只读方式打开同目录下a.txt文件,并打印出它的第一行内容的,然后关闭文件的代码实现
1
2
3
4
f = open("a.txt","r")
a = f.readline()
print(a)
f.close()
  1. 【提高题】使用with open() as file:的语句和直接用open打开文件的区别是什么?【5分】

with open 语句不用手动关闭文件,到程序跳出with open语句块,自动关闭文件。

八.硬核编程【10/30分,除提高】

  1. 用python实现斐波那契数列(1,1,2,3,5,8,13…)(要求给出项数n, 打印出n之前(包括n的)斐波那契数列

【提示:建议使用两个数进行循环推演,放入列表;不建议使用递归】

1
2
3
4
5
6
n = eval(input())
a = 0
b = 1
for i in range(n):
a,b = b,b+a
print(a)
  1. 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

    编程判断回文数

    【提示:python很快捷和高效,类型的转换很灵活,不一定非得模几除几的取位,试着把它转化为字符串试试】

1
2
3
4
5
6
7
8
9
10
11
integer = input()
is_hui = True
if integer.isdigit():
for i in range(int(len(integer)/2)):
if integer[i]!=integer[-(i+1)]:
is_hui = False
break
else:
is_hui = False

print("是回文数" if is_hui else "不是回文数")
  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
    6
    n = 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
    7
    n = 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()

实验室产品开发python考核题
https://blog.wangxk.cc/2019/09/09/实验室产品开发python考核题/
作者
Mike
发布于
2019年9月9日
许可协议