python基础考核试题及答案
选择题(每题2分,共20分)
1.下列哪个语句在Python中是非法的? (B)
A、x = y = z = 1 B、x = (y = z + 1) C、x, y = y, x D、x += y x=x+y
2.关于Python内存管理,下列说法错误的是 (B)
A、变量不必事先声明 B、变量无须先创建和赋值而直接使用 C、变量无须指定类型 D、可以使用del释放资源
3.print 100 - 25 * 3 % 4 应该输出什么? (B)
A.1 B.97 C.25 D.0
4、下面哪个不是Python合法的标识符 (B)
A、int32 B、40XL C、self D、__name__
5、下列哪种说法是错误的 (A)
A、除字典类型外,所有标准对象均可以用于布尔测试 B、空字符串的布尔值是False
C、空列表对象的布尔值是False D、值为0的任何数字对象的布尔值是False
6、下列表达式的值为True的是 (C)
A、5+4j > 2-3j B、3>2>2 C、1==1and2!=1 D、not(1==1and 0!=1)
7、Python不支持的数据类型有 (A)
A、char B、int C、float D、list
8、以下不能创建一个字典的语句是 (C)
A、dict1 = {} B、dict2 = { 3 : 5 } C、dict3 = dict( [2 , 5] ,[ 3 , 4 ] ) D、dict4 = dict( ( [1,2],[3,4] ) )
9、下面不能创建一个集合的语句是 (C)
A、s1 = set () B、s2 = set (“abcd”) C、s3 = (1, 2, 3, 4) D、s4 = frozenset( (3,2,1) )
10、下列Python语句正确的是 (D)
A、min = x if x < y else y B、max = x > y and x : y C、if (x > y) print x D、while True : pass
二.填空(每空一分,共10分)
设L=['a','b','c','d','e','f','g'],则:
L[3]值是'd' L[3:5]值是['d', 'e'] L[:5]值是['a', 'b', 'c', 'd', 'e'] L[3:]值是['d', 'e', 'f', 'g']
L[-5:-2]值是['c', 'd', 'e'] L[::2]值是['a', 'c', 'e', 'g']
Python中可变数据类型有list和dict,不可变数据类型有int和str
三、简答题(每题5分,共45分)
1、声明变量注意事项有那些?
答:①以字母、数字、下划线组成,不能以数字开头;②不能用关键字;③区分大小写。
2、简述 对象和 类的关系?
答:①类:抽象的,只有一个,一类事物的总称;②对象:实体的,可以有多个,是类的具体实现。
3、Python里面如何实现tuple和list的转换?
答:tuple(list) list(tuple)
4、介绍一下except的用法和作用?
答:与try语句连用,如果try语句正确,则不会执行except语句;如果try语句错误,则跳转到except语句,和except语句后的错误类型进行匹配,错误类型一致,则输出相应except语句下的内容。如果都不匹配,则再一次执行try语句,并且报错;如果后面有else语句,在try语句正确的情况下执行;如果后面有finally语句,一定执行。
5、Dict特点?
答:①key不重复,不可变;②数据无序排放;③可变数据类型。
6、List 和tuple 区别
答:①相同点:都是有序集合。②异同点:list是可变数据类型,tuple是不可变数据类型;定义方式:list[] tuple();list 有append(),insert()等方法;tuple没有。
7、定义函数的规则是?
答:以def开头,后接函数名和 '():',有参数写在()中,下一行缩进,如果有返回值则写在return后面。
8、面向对象语言都有封装,继承,多态,分别描述封装,继承,多态的含义和作用?
答:①封装:把类的属性赋予给对象 。作用:方便调用。②继承:子类继承父类的属性和方法。作用:减少代码量。③多态:一类事物的多种表现形式,父类的实现指向子类的引用,需要利用继承,方法重写,重载等方法。作用:减少代码量。
9、在python中f = open('d:/a.txt', 'r')读取文件需要注意哪些
答:f是变量。open是打开文件,如果文件不存在,则创建后再打开。'd:/a.txt'是文件路径,代表d盘中一个名为'a.txt'的文件,'r'是以读的方式打开。
三 编程题(每题5分,共25分)
1、实现登录功能(共4分)
①实现用户输入用户名和密码,当用户名为 admin且密码为 123 时,显示登陆成功,否则登陆失败!
name = input("请输入用户名:")
key = input("请输入密码:")
if name == "admin" and key == "123":
print("登录成功!")
else:
print("登录失败!")
②实现用户输入用户名和密码,当用户名为 seven 且密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次答。
for i in range(3):
name = input("请输入用户名:")
key = input("请输入密码:")
if name == "seven" and key == "123":
print("登录成功!")
break
elif i < 2:
print("登录失败!请重新输入。")
else:
print("登录失败!")
2、写代码,有如下变量,请按照要求实现每个功能。name = " aleX is a man "(0.5分一个,共4分)
①移除 name 变量对应的值两边的空格,并输出移除后的内容:print(name.strip())
②判断 name 变量对应的值a出现次数,并输出结果:print(name.count("a"))
③判断 name 变量对应的值以a进行分割,并输出结果:print(name.split("a"))
④将 name 变量对应的值a替换成w,并输出结果:print(name.replace("a","w"))
⑤将 name 变量对应的值变小写,并输出结果:print(name.lower())
⑥请输出 name 变量对应的值的第 2 个字符:print(name[1])
⑦请输出 name 变量对应的值的前 3 个字符:print(name[:3])
⑧请输出 name 变量对应的值的后 2 个字符:print(name[-2:])
3、从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存。
s = input("请输入一个字符串:")
ss = s.upper()
f = open("b.text", 'w+')
f.write(ss)
f.close()
4、请用循环的方式输出九九乘法表。
for i in range(1, 10):
for j in range(1, i + 1):
print("%d*%d=%2d" % (j, i, i *j), end = " ")
print()
5、输入一个六位数,求各位数之和,如果各位数之和为36-45,则此数字为幸运数字。
n = input("请输入一个六位数:")
sum = 0
for i in n:
sum += eval(i)
if sum >= 36 and sum <= 45:
print(n + "是幸运数字。")
else:
print(n + "不是幸运数字。")
6、某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。试输入一个数,并求出对应的数字。(8分)
n = input("请输入一个四位数:")
m = []
for i in range(0, 4):
m.append((eval(n[i]) + 5) % 10)
m[0], m[3] = m[3], m[0]
m[1], m[2] = m[2], m[1]
for i in m:
print(i, end = '')
print()
7、定义一个学生类。(12分)
有下面的类属性:①姓名②年龄③成绩(语文,数学,英语)[每课成绩的类型为整数]
类方法:
①获取学生的姓名:get_name() 返回类型:str
②获取学生的年龄:get_age() 返回类型:int
③返回3门科目中最高的分数。get_course() 返回类型:int
写好类以后,可以定义2个同学测试下:
zm = Student('zhangming',20,[69,88,100])
返回结果:
Zhangming 20 100
class Student:
def __init__(self, name, age, score):
self.name = name
self.age = age
self.score = score
def get_name(self):
print("姓名:",self.name)
def get_age(self):
print("年龄:",self.age)
def get_score(self):
print("成绩:",max(self.score))
zm = Student('zhangming',20,[69,88,100])
zm.get_name()
zm.get_age()
zm.get_score()