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 时,显示登陆成功,否则登陆失败!
1. name = input("请输入用户名:") 2. key = input("请输入密码:") 3. if name == "admin" and key == "123": 4. print("登录成功!") 5. else: 6. print("登录失败!")
②实现用户输入用户名和密码,当用户名为 seven 且密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次答。
1. for i in range(3): 2. name = input("请输入用户名:") 3. key = input("请输入密码:") 4. if name == "seven" and key == "123": 5. print("登录成功!") 6. break 7. elif i < 2: 8. print("登录失败!请重新输入。") 9. else: 10. 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"中保存。
1. s = input("请输入一个字符串:") 2. ss = s.upper() 3. f = open("b.text", 'w+') 4. f.write(ss) 5. f.close()
4、请用循环的方式输出九九乘法表。
1. for i in range(1, 10): 2. for j in range(1, i + 1): 3. print("%d*%d=%2d" % (j, i, i *j), end = " ") 4. print()
5、输入一个六位数,求各位数之和,如果各位数之和为36-45,则此数字为幸运数字。
1. n = input("请输入一个六位数:") 2. sum = 0 3. for i in n: 4. sum += eval(i) 5. if sum >= 36 and sum <= 45: 6. print(n + "是幸运数字。") 7. else: 8. print(n + "不是幸运数字。")
6、某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。试输入一个数,并求出对应的数字。(8分)
1. n = input("请输入一个四位数:") 2. m = [] 3. for i in range(0, 4): 4. m.append((eval(n[i]) + 5) % 10) 5. m[0], m[3] = m[3], m[0] 6. m[1], m[2] = m[2], m[1] 7. for i in m: 8. print(i, end = '') 9. print()
7、定义一个学生类。(12分)
有下面的类属性:①姓名②年龄③成绩(语文,数学,英语)[每课成绩的类型为整数]
类方法:
①获取学生的姓名:get_name() 返回类型:str
②获取学生的年龄:get_age() 返回类型:int
③返回3门科目中最高的分数。get_course() 返回类型:int
写好类以后,可以定义2个同学测试下:
zm = Student('zhangming',20,[69,88,100])
返回结果:
Zhangming 20 100
1. class Student: 2. def __init__(self, name, age, score): 3. self.name = name 4. self.age = age 5. self.score = score 6. def get_name(self): 7. print("姓名:",self.name) 8. def get_age(self): 9. print("年龄:",self.age) 10. def get_score(self): 11. print("成绩:",max(self.score)) 12. zm = Student('zhangming',20,[69,88,100]) 13. zm.get_name() 14. zm.get_age() 15. zm.get_score()