一、周考一:
1、简述什么是编程
编写控制计算机的指令,奴役计算机完成我们想让计算机完成的事
2、简述什么是编程语言
按照某种规范编写出来的计算机指令,根据不同规范诞生了不同的编程语言
3、编程语言的分类与特点描述
机器语言 - 运行效率高 汇编语言 - 增加可读性 高级语言 - 开发效率高
4、高级语言分类与工作原理简介
编译型 - 先编译在执行 解释性 - 边解释边执行
5、介绍你知道的编程语言
C Java Python
6、要在一个新电脑上运行python程序,需要进行哪些一步步操作
安装python解释器 配置环境变量 运行python程序 或者: 安装python解释器 安装python编辑器选取解释器 运行python程序
7、解释一下什么是变量
计算机运行过程中,状态可以发生改变的量
8、python中如何定义变量,并简述定义变量的流程
变量名 = 变量值 num = 10
9、简述变量名的命名规范
可以由字母数字及下划线组成 不能以数字开头 不能与系统关键字重名
10、定义的变量拥有的三要素,python中如何查看它们,用代码简述
num = 10 值:num 类型:type(num) 地址:id(num)
12、常用的数据类型有哪些(文字或英文解释)
bool int float str list tuple dict set
13、用代码简述常用数据类型的定义声明
a = 10 b = 3.14 c = '' d = [1, 2, 3] e = (1, 2, 3) f = {'name': 'Bob', 'age': 18} g = {1, 2, 3}
16、在python3环境下,实现从键盘录入分数(只考虑0~100的合法分数),实现有(满分|通过|未通过)三种输出结果
grade = int(input('grade: ')) if grade == 100: print('满分') elif grade >= 60: print('通过') else: print('未通过')
17、录入一个学生的两门成绩,如果两门都及格,则打印 "通过",否则 "不通过"
g1 = int(input('class1 grade: ')) g2 = int(input('class2 grade: ')) if g1 >= 60 and g2 >= 60: print('通过') else: print('不通过')
18、录入两个人的身高,打印是否存在 "存在180cm已上大高个" | "不存在180cm已上大高个"
h1 = int(input('person1 height: ')) h2 = int(input('person2 height: ')) if h1 > 180 or h2 > 180: print('存在180cm已上大高个') else: print('不存在180cm已上大高个')
19、从键盘录入学生分数,录入Q时退出录入,实现统计录入的次数
count = 0 while True: grade = input('grade: ') if grade != 'Q': break count += 1 print(count)
20、学生进行两门课考试,第一门未通过一直重考,通过后进入第二门考试,未通过一直重考第二门,通过后打印 "通过" 并结束考试(通过输入考试成绩模拟考试)
is_over = False while not is_over: g1 = int(input('grade1: ')) if g1 >= 60: while True: g2 = int(input('grade2: ')) if g2 >=60: print('通过') is_over = True break
21、取出 "abc123好" 中的汉字
s = "abc123好" print(s[-1:])
22、键盘上录入usr和pwd,一次性分两行打印:
密码为:***
usr = input('usr: ') pwd = input('pwd: ') print('''账号为:%s 密码为:%s''' % (usr, pwd))
23-25:
辅助23~25: "今天天气好晴朗,天上彩云一朵朵,比昨天好!"
23、计算字符串长度、"天"出现的次数、"彩"是否出现过
24、获取字符串中标识时间的子字符串
25、判断字符串是否以 "!" 结尾,如果是替换为 "。"
s = "今天天气好晴朗,天上彩云一朵朵,比昨天好!" print(len(s), s.count('天') '彩' in s print(s[:2], s[-4:-2]) if s.endswith('!'): s = s.replace('!', '。') print(s)
26、完成 "1@2@3@4@5" 与 ['1', '2', '3', '4', '5'] 之间的相互转换
"1@2@3@4@5".split('@') '@'.join(['1', '2', '3', '4', '5'])
27、利用添加append及插入insert的两种方式,在 [1, 2, 3, 4, 5] 列表的最后插入6和7
ls = [1, 2, 3, 4, 5] ls.append(6) ls.insert(len(ls), 7)
28、将以下信息转换为字典结构存储 [ ('name', 'Bob'), ('age', 18), ('gender', 'male') ]
ls = [('name', 'Bob'), ('age', 18), ('gender', 'male')] dic = {} for k, v in ls: dic[k] = v print(dic)
29、选取一种数据结构存储两个学生的选课信息
Bob:语文、政治、英语
Tom:高数、线代、英语
问:只被Tom选择了的课程;两个人都选择了的课程、被选的所有课程
bob = {'英文', '语文', '政治'} tom = {'英文', '高数', '线代'} print(tom - bob) print(bob & tom) print(bob | tom)
30、简述列表、元组、字典、集合几个数据类型的特点:取值依据|是否可变|有序无序|值能否重复
列表:索引,可变,有序,能
元组:索引,不可变,有序,能
字典:key,可变,无序,能
集合:无,可变,无序,不能
31、复制source.mp4为target.mp4
with open('source.mp4', 'rb') as f1, open('target.mp4', 'wb') as f2: for line in f1: f2.write(line)
二、周考二:
1、解释⼀下什么是函数,使⽤函数有哪些优点
可以完成特定功能的代码块,
函数就是存放代码块的容器,是可以重复利用的工具。
优点:功能需要扩展时只要修改函数即可,降低维护成本;
减少代码冗余;
增加程序可读性,让代码组织结构清晰。
2、简述函数的四个组成部分与其作⽤
函数名:调用函数的依据
函数体:执行功能的代码块
参数列表:完成功能需要的条件信息
返回值:功能完成的反馈结果
3、简述实参与形参的分类,传参规则是什么
实参可分为:位置实参, 关键字实参(用*,**解压本质上还是这两个) 形参可分为:位置形参, 默认形参, 可变长形参 用法: 1.位置参数得写在关键字参数(默认参数)之前 2.*args得写在位置形参之后,默认形参之前 3. **kwargs得写在默认形参之后 """
4、什么是可迭代对象,什么是迭代器对象?
1.可迭代对象有且只有__iter__()方法;迭代器对象既有__iter__()也有__next__() 2.可迭代对象是指可以通过__iter__()转换成迭代器对象的对象
5、如何区别于有名函数来定义⼀个匿名函数,写出定义语法并说出区别点
lambda 参数们:返回值表达式 匿名函数用lambda关键字声明。与有名函数相比,匿名函数没有函数名和函数体,参数也省略了()
6、写出while循环利⽤迭代取值⽅式来获取列表[3, 1, 5, 2, 4]中的值(不能使⽤索引)
l = [3, 1, 5, 2, 4] l2 = l.__iter__() i = 0 while i < len(l): print(l2.__next__()) i += 1
7、列举常⻅的内置函数?(⾄少5种)
max() min() sorted() isinstance() len()
open() range() type() enumerate()
8、利⽤函数求出字典中,薪资最⾼的⼈:{"Bob": 36000, 'Tom': 27000}
dic = {"Bob": 36000, 'Tom': 27000} res = max(dic, key=lambda k: dic[k]) print(res)
9、利⽤列表推导式,产⽣这样的⼀个列表:[6, 6, 6]
res = [6 for I in range(3)] print(res)
10、现有字典 d={‘a’:24,’g’:52,’l’:12,’k’:33}请使⽤函数的内置⽅法按字典中的 value 值进⾏排序?
d = {'a': 24, 'g': 52, 'l': 12, 'k': 33} print(sorted(d,key=lambda k:d[k]))
11、什么是装饰器,装饰器的作⽤是什么?
装饰器的本质也是一个函数
在不改变原有函数源代码和函数调用方式的情况下,在函数的内部调用原有函数,
通过闭包对原有函数的功能进行增添。
12、求结果:
print([i % 2 for i in range(10)]) # [0, 1, 0, 1, 0, 1, 0, 1, 0, 1] print({i: v for i, v in enumerate(['a', 'b', 'c', 'd'], start=1)}) # {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
13、⽤列表推导式产⽣:[1,4,9,16,25,36,49,64,81,100]
res = [k*k for k in range(1, 11)] print(res)
14、以下代码的输出结果
def extendlist(val, ls=[]): ls.append(val) return ls list1 = extendlist(10) list2 = extendlist(123, []) list3 = extendlist('a') print("list1 = %s" % list1) # list1 = [10, 'a'] print("list2 = %s" % list2) # list2 = [123] print("list3 = %s" % list3) # list3 = [10, 'a']
15、写出⼀下函数的输出结果
def fn1(*arg): print(arg) fn1([1, 2, 3]) #([1, 2, 3],) fn1(*[1, 2, 3]) # (1, 2, 3)
16、利⽤代码实现将1~100之间所有可以整除3的输出存放到⼀个列表中
方法一 lis = [] for i in range(1,101): if i % 3 == 0: lis.append(i) print(lis) 方法二 lis = [i for i in range(1,101) if i % 3 == 0] print(lis)
17、写出 isinstance(True, bool) 与 isinstance(True, int) 的结果
True
True
18、函数实现过滤掉列表中所有的奇数[1, 2, 3, 4, 5, 6, 7, 8]
lis = [] def fn(): for i in range(1,9): if i % 2 == 0: lis.append(i) fn() print(lis)
19、写出两次打印结果
x = list(range(10)) print(x) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] del x[::2] print(x) # [1, 3, 5, 7, 9]
20、求结果
v = dict.fromkeys(['k1', 'k2'], []) v['k1'].append(666) print(v) # {'k1': [666], 'k2': [666]} v['k1'] = 777 print(v) # {'k1': 777, 'k2': [666]}
21、什么是递归,完成询问年龄的递归,第⼀个⼈年纪10岁,后⼀个⼈是前⼀个⼈年纪的3倍,依次 类推,求第三个⼈年纪
def fn(num): if num == 1: return 10 age = fn(num-1)*3 return age res = fn(10) print(res)
22、完成简易版购物车
只有登录与购物功能,但购物必须在登录后才能完成,账号信息全存放在user.txt⽂件中,
⽂件内容:Bob|000|10000
1、登录:验证账号密码完成登录,账号必须纯英⽂,三个及以上字符,密码必须为字⺟数字组成,也 必须三个及以上字符
2、购物:输⼊1完成购物,输⼊0取消购物,输⼊错误,重新输⼊
3、为购物功能添加登录认证装饰器,没有登录,进⼊登录,登录后直接登录