基础题
1、请说明python解释器与python语言的区别与联系:
Python是一门解释型语言,代码想运行,必须通过解释器执行,Python的解释器本身也可以看作是个程序
2、执行python脚本的两种方式是?
交互式:交互式环境下,敲完一条命令按下enter键马上能看到结果,调试程序方便。程序无法永久保存,关掉cmd窗口数据就消失了。
命令行式:打开文本编辑器,在文本编辑器中写入一串字符。
3、python如何实现单行注释和多行注释
单行注释:# 多行注释:''' ''' """ """" 三引号
4、定义一个变量有三个特性,分别为?等号比较的是?is比较的是?
变量名 变量值 赋值号 等号比较的是值是否相等 is比较的是id是否相等
5、使用链式赋值的方式将10赋值给变量x,y,z
x = y = z = 10
6、count = 10,使用增量赋值,将count的值增加111
count+=101
7、使用一行代码将info=['egon',18,'male'] 将列表中的名字、年龄、性别分别赋值给变量name,age,gender
name,age,gender = info
8、编写猜年龄程序
a)要求用户输入年龄,然后与程序后台存放的年龄进行比较,然后打印不同的提示信息,提示用户猜大了or猜小啦or猜对啦
b)要求最多三次则退出程序
age = 18 for i in range(3): inp_age = input('请输入年龄:').strip() if inp_age.isdigit(): inp_age = int(inp_age) if inp_age > age: print('猜大啦') elif inp_age < age: print('猜小啦') else: print('猜对啦') break else: print('非法输入') else: print('只有三次机会哦')
9、简述数据类型int、str、list、tuple、dict、set的应用场景
int:记录年龄,个数,号码,等级等相关级别
list:在[ ] 内用逗号分隔开多个任意类型的值
tuple:元组就相当于一种不可变的列表,所以说元组也是按照位置存放多个任意类型的元素
dict:按照key:value的方法存放多个值,其中key对value应该有描述性的效果
set:去重(无法保证顺序)关系运算 集合内元素必须是不可变元素 集合内元素不能重复 集合内元素无序
10、有列表data=['alex',49,[1900,3,18]],分别取出列表中的名字,年龄,出生的年,月,日赋值给不同的变量
data=['alex',49,[1900,3,18]] name = data[0] age = data[1] year = data[2][0] date = data[1] mouth = data[2][2] print(name,age,year,date,mouth)
11、有如下列表,请取出第三个学生的第一个爱好
students=[ {'name':'alex','age':38,'hobbies':['play','sleep']}, {'name':'egon','age':18,'hobbies':['read','sleep']}, {'name':'wupeiqi','age':58,'hobbies':['music','read','sleep']}, ] print(students[2]['hobbies'][0]) # music
12、有列表students_info = ['egon',18,['play',],['alex',18,['play','sleep']]],请取出第二个学生的第二个爱好
students_info = [['egon',18,['play',]],['alex',18,['play','sleep']]] print(students_info[1][2]) # ['play', 'sleep']
13、所有数据类型都自带布尔值,布尔值为假的有:
#所有数据类型都自带布尔值 1、None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False 2、其余均为真
14、请判断下述代码的结果为:
print(10 > 3 and 'alex' != 'sb' or 'abc' > 'd') print(10 > 3 and 'alex' == 'sb' or 'abc' < 'd') print(10 > 3 or 'alex' < 'sb' or 'abc' < 'd' and 'egon' == 'nb') >>>: True True True
15、阅读代码,请写出执行结果
if True or False and False: print('yes') else: print('no') # yes if (True or False) and False: print('yes') else: print('no') # no
16、请使用while和for两种方式来循环所有可以循环的数据类型
# 编写for循环,利用索引遍历出每一个字符 msg='hello egon 666' for x in msg: print(x,end=' ') # 编写while循环,利用索引遍历出每一个字符 msg='hello egon 666' res = 0 while res<len(msg): print(msg[res],end=' ') res+=1
17、编写while循环,让用户输入用户名和密码,如果用户未空或者数字,则重新输入
while True: inp_name = input('Username>>>: ').strip() inp_pwd = input('Password>>>: ').strip() if not inp_name or not inp_pwd:continue if inp_name == 'egon' and inp_pwd == '123': print('logging successful') break else: print('Username or Password Error')
18、输出1-100内所有的奇数
count = 0 while count < 100: if count % 2 == 1: print(count) count +=1
19、使用while循环输出1 2 3 4 5 6 8 9 10
count = 1 while count < 11: if count == 7: count+=1 continue print(count) count+=1
20、求1-2+3-4+5 ... 99的所有数的和
count = 1 sum = 0 while count < 100: if count % 2 == 1: sum+=count elif count % 2 == 0: sum-=count count+=1 print(sum) # 50
21、请说明break和continue的区别
break:中途退出,结束循环
continue:结束当前循环进入下一循环
22、常用数据类型有:字符串、列表、元组、字典、集合,请分类
按照存值个数分类 按照可变\不可变类型分类 按照取值方式分类(直接取,按照索引,按照key取值) 按照有序\无序分类
按存值个数区分:
标量/原子类型 | 数字,字符串 |
容器类型 | 列表,元组,字典,集合 |
按照可变不可变区分:
可变 | 列表、字典 |
不可变 |
数字、字符串、元组 |
按访问顺序区分:
直接访问 | 数字 |
顺序访问(序列类型) | 字符串,列表,元组 |
key值访问(映射类型) | 字典 |
23、阅读代码,请写出执行结果
a = 'alex' b = a.upper() print(a) print(b) # alex # ALEX
24、写代码,有如下变量,请按照要求实现每一个功能
name = " aleX" 1) 移除 name 变量对应的值两边的空格,并输出处理结果 res = name.strip() print(res) #aleX 2) 判断 name 变量对应的值是否以 "al" 开头,并输出结果 res1 = name.startswith('al') res2 = name.strip().startswith('al') print(res1) # False print(res12) # True 3) 判断 name 变量对应的值是否以 "X" 结尾,并输出结果 res = name.endswith('X') print(res) # True 4) 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果 res = name.replace('l','p') print(res) # apeX 5) 将 name 变量对应的值根据 “l” 分割,并输出结果。 res = name.split('l') print(res) # [' a', 'eX'] 6) 将 name 变量对应的值变大写,并输出结果 res = name.upper() print(res) # ALEX 7) 将 name 变量对应的值变小写,并输出结果 res = name.lower() print(res) # alex 8) 请输出 name 变量对应的值的第 2 个字符? res = name[1] print(res) # a 9) 请输出 name 变量对应的值的前 3 个字符? res = name[0:3] print(res) # al 10) 请输出 name 变量对应的值的后 2 个字符? res = name[-2::] print(res) #eX 11) 请输出 name 变量对应的值中 “e” 所在索引位置? res = name.index('e') print(res) # 3 12) 获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo。 str1 = 'oldboy' res = str1[:-1] print(res)
25、有变量如下,将该文件中的文件名,文件大小,操作方法切割出来
msg='/etc/a.txt|365|get' res = msg.split('|') print(res) # ['/etc/a.txt', '365', 'get']
26、msg = 'hello alex' 中的 'alex' 替换成 SB
msg = 'hello alex' msg = msg.replace('alex','SB') print(msg) # hello SB
27、有如下值集合[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存至字典中的第一个key中,将小于66的值保存至第二个key中
k1 = [] k2 = [] msg = [11,22,33,44,55,66,77,88,99,90] for x in msg: if x > 66: k1.append(x) elif x < 66: k2.append(x) print({'k1':k1,'k2':k2}) # {'k1': [77, 88, 99, 90], 'k2': [11, 22, 33, 44, 55]}
28、有如下两个集合,pythons是报名python课程的学院名字集合,linuxs是报名linux课程的学院名字集合
pythons={'alex','egon','yuanhao','wupeiqi','cobila','biubiu'} linuxs={'wupeiqi','oldboy','cobila'} # 求出即报名python又报名linux课程的学员名字集合 res = pythons & linuxs print(res) # {'cobila', 'wupeiqi'} # 求出所有报名的学生名字集合 res = pythons | linuxs print(res) # {'yuanhao', 'egon', 'cobila', 'wupeiqi', 'biubiu', 'oldboy', 'alex'} # 求出只报名python课程的学员名字 res = pythons - linuxs print(res) # {'alex', 'yuanhao', 'egon', 'biubiu'} # 求出没有同时这两门课程的学员名字集合 res = pythons ^ linuxs print(res) # {'egon', 'biubiu', 'oldboy', 'alex', 'yuanhao'}
29、什么是字符编码,如何避免乱码问题
字符编码就是以二进制的数字来对应字符集的字符
30、unicode转成utf-8的过程称之为encode 还是 decode
encode
31、在python3中bytes类型与unicode类型二者之间如何相互转换
1bytes = 8bits
32、使用with语法以文本的方式打开一个文件,并读出文件所有内容,该内容的数据类型是
数据类型为字符类型
with open('a.txt','rt',encoding='utf-8') as f: f.read()
33、以b的方式打开文件,覆盖写入新内容"你好啊"wxx"
res = '你好啊wxx' with open('a.txt','wb') as f: res = res.encode() # 编码 f.write(res)
综合题
1、编写登录接口
基础需求:
让用户输入用户名密码
认证成功之后显示欢迎信息
输错三次之后退出程序
count = 0 while count < 3: inp_name = input('Username >>>: ').strip() inp_pwd = input('Password >>>: ').strip() if inp_name == 'egon' and inp_pwd == '123': print('登录成功') break else: print('Username or Password Error') count +=1
升级需求
可以支持多个登录(提示,通过列表存多个账户信息)
用户3次认证失败之后,退出程序,再次启动程序尝试登录时,还是锁定状态(需要把用户锁定的状态存到文件里面)
2、编写拷贝文件的程序,要求
a)可以拷贝任意类型的文件
b)在命令行中执行,命令格式为:python3 copy.py src_file dst_file
3、请用两种方式实现,将文件中的alex全部替换成SB的操作
4、编写购物车程序,实现注册,登录,购物,查看功能,数据基于文件存取