今天主要是分析考试题:
1.变量
1 数字 字母 下划线组成
2 数字不能开头
3 不能用python中的关键字 while for in
age_of_oldboy = 83
ageOfOldboy = 83
2.字节和位关系
字节 byte == 8位 计算机里最小的存储单位
位 bit 计算机里最小的表示单位
8位(bit) = 1字节(bytes)
3.看代码写结果:
name = “wupeiqi”
result = name.upper()
print(name)
print(result)
输出的结果是:print(name):wupeiqi
compile(result):WUPEIQI
4. “李泉”使⽤utf-8编码时,占⽤字节以及位数;使⽤gbk编码时,占⽤字节以及位数
print(bytes("李泉",encoding='utf-8'))
print(bytes("李泉",encoding='gbk'))
utf-8字节:6个字节, gbk字节:4个字节
位数:48位 位数:32位
5. 简述⼀下两段代码的区别?
# n1 = “wupeiqi”
# n2 = n1
# n1 = “wupeiqi”
n2 = “wupeiqi”
n1 = “wupeiqi”
n2 = n1
n1重新把值赋值给n2,
n1 = “wupeiqi”
n2 = “wupeiqi”
两个值互补干扰,n1和n2指向的是两块内存
6. 默认字符串中的10个功能并描述作⽤
(1).- upper():字母全部大写
(2).- lower():字母全部小写
(3).- strip(): 去除首尾的空格
(4).- split():以"xx"分割字符串
(5).- capitalize():首字母大写
(6).- replace():把"xx,替换成"xx"
(7).-lstrip():去除左边空格
(8).-rstrip():去除右边空格
(9).- encode():把字符串转换成字节
(10). - count():"xx"在字符串中出现了几次
7.书写布尔值为False的常⽤值?
0 None '' [] () {} #
8. 书写Python3和Python2的三个不同
(1).除法:Python3中"9/2"得出的结果是:4.5
Python2中"9/2"得出的结果是4
(2).编码:Python2版本不支持中文,默认支持的是ascii
Python3支持中文编译,使用的格式是UTF-8格式
(3).Python2:range(), 写用于生成连续数字,列表类型
xrange(), 写用于连续的数字,for循环时才能使用,未知类型(生成器
Python3:range() =Python2
9. 简述深浅拷贝?
浅拷贝:只拷贝第一层
深拷贝:拷贝所有
10. 分别使⽤for和while循环实现 1 - 2 + 3 - 4 + 5 …+99
result = 0
for num in range(1, 100):
if num %2 == 0:
result = result - num
else:
result += num
print(result)
num = 1
result = 0
while num < 100:
if num %2 ==0:
result -= num
else:
result += num
num = num + 1
print(result)
11. 使⽤range实现打印 100,99,98…1,0
print(list(range(100, -1, -1)))
12. 看代码写结果
n1 = [11,22,33]
n2 = n1
n3 = n1.copy()
n1[1] = 666
print(n1)
print(n2)
print(n3)
输出的结果:
print(n1): [11, 666, 33]
print(n2): [11, 666, 33]
print(n3): [11, 22, 33]
13. 打印 9*9 乘法表
for i in range(1, 10):
for j in range(1, i+1):
print("%s*%s=%s" %(j, i*j),end = "")
print()
14.判断⼀下代码是否正确,如果错误则改正,否则书写结果
name = “你{0},{1}⽆理取闹”
n1 = name.format(‘冷酷’,’⽆情’)
print(n1)
n2 = name.format(**[’冷酷’,’⽆情’])
print(n2)
name = “你{xx},{oo}⽆理取闹”
n3 = name.format(oo=‘冷酷’,xx=’⽆情’)
print(n3)
n4 = name.format(*{‘xx’: ’冷酷’, ‘oo':’⽆情’})
print(n4)
错误的是2.4,以下是修改过的结果:
n2 = name.format(*[’冷酷’,’⽆情’])
print(n2)
n4 = name.format(**{‘xx’: ’冷酷’, ‘oo':’⽆情’})
print(n4)
输出的结果是:
你冷酷,无情无理取闹
你冷酷,无情无理取闹
15.计算⽤户输⼊的内容中索引为奇数并且值为数字的个数。
s = "asdad1354asd4654565"
c = 0
for index in range(len(s)):
if index%2 == 1 and s[index].isdigit():
c += 1
print(c)
17. 看代码书写结果.
for i in range(0,5):
print(i)
for j in (0,i):
print(j)
# 输出的结果是:i:0 1 2 3 4
j: 0 4
18. 看代码书写结果.
while True:
for i in range(10):
print(i)
if i == 5:
continue
else:
break
输出的结果是:0 1 2 3 4 5 6 7 8 9
19. 补充代码。
有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有⼤于 66 的值保存⾄字典的第⼀个key中,将⼩于 66 的值保存⾄第⼆个key的值中。
li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
result = {}
for row in li:
if row > 66:
if 'k1' in result:
result['k1'].append(row)
else:
result['k1'] = [row]
elif row < 66:
if 'k2' in result:
result['k2'].append(row)
else:
result['k2'] = [row]
print(result)
20. 写代码,将列表 li = [11,22,33,44,55]的第⼀个之和最后⼀个值相加并插⼊索引为3的位置
li = [11, 22, 33, 44, 55]
su = li[0] + li[-1]
li.insert(3, su)
print(li)
21. 写代码,有以下数字:1,2,3,4,5,6,7,8 共⼋个数字,能组成多少个互不相同且⽆重复的两位数?
count = 0
for i in range(1, 9 ):
for j in range(1, 9):
if i != j:
count += 1
print(count)
22.写代码,有以下列表,if 请找到列表中任意两个数字相加等于9的元素的索引:
nums = [2, 7, 11, 15, 1, 8, 7]
结果为: [(0, 1),(0, 6) (4, 5)]
nums = [2, 7, 11, 15, 1, 8, 7]
result = []
for i in range(len(nums)):
for j in range(i, len(nums)):
if nums[i] + nums[j] == 9:
result.append((i, j))
print(result)
23. 看代码,书写结果
fromkeys对于可变数据类型做value,修改一个所有都受影响,不可变数据类型修改不会互相影响其他
dic = dict.fromkeys(["k1", True, (11, 22)], [])
dic["k1"].append(6)
dic["k1"].append(7)
print(dic)
输出的结果是:{True: [6, 7], 'k1': [6, 7], (11, 22): [6, 7]}
24.基于⽂件实现⽤户登录程序,提示⽤户输⼊⽤户名和密码,检查是⽤户名和密码是否正确
保存⽤户名密码的⽂件user.txt,内容格式:
f = open('user.txt',encoding='utf-8')
dic = {}
for line in f:
l = line.strip().split('|')
dic[l[0]] = l[1]
user = input('username : ')
pwd = input('password : ')
if dic.get(user) == pwd:
print('登录成功')
25. 看代码,书写结果
name = "海娇"
userlist = ["⽼狗", "⽅惊鸿"]
userlist.extend(name)
print(userlist)
输出的结果为:['⽼狗', '⽅惊鸿', '海', '娇']
26. 列举int、bool、str、list、tuple、dict、set中可以作为字典的Key的类型
int, bool, str, tuple
27. 转换
# a. 将字符串 s = "alex" 转换成列表
s = "alex"
print(list(s))
# b. 将字符串 s = "alex" 转换成元祖
s = "alex"
print(tuple(s))
# b. 将列表 li = ["alex", "seven"] 转换成元组
li = ["alex", "seven"]
print(tuple(li))
# c. 将元祖 tu = ('Alex', "seven") 转换成列表
tu = ('Alex', "seven")
print(list(tu))
# d. 将列表 li = ["alex", "seven"] 转换成字典且字典的key按照 10 开始向后递增
li = ["alex", "seven"]
d = {}
k = 10
for i in li :
d[k] = i
k += 1
print(d)