1.请用代码验证 "alex" 是否在字典的值中?
info = {'name':'王刚蛋','hobby':'铁锤','age':'18',...100个键值对}
info = {'name':'王刚蛋','hobby':'铁锤','age':'123alex1123'} #假设有一百个键值对
flag = False
for i in info.values():
if "alex" in i:
flag = True
if flag:
print("alex是在字典的值中")
else:
print("alex不在字典的值中")
2.有如下
v1 = {'郭宝元','李杰','太白','梦鸽'}
v2 = {'李杰','景女神}
请得到 v1 和 v2 的交集并输出
print(v1 & v2)
请得到 v1 和 v2 的并集并输出
print(v1 | v2)
请得到 v1 和 v2 的 差集并输出
print(v1 - v2)
请得到 v2 和 v1 的 差集并输出
print(v2 - v1)
3.循环提示用户输入,并将输入内容追加到列表中(如果输入N或n则停止循环)
lst = []
while 1:
inp = input("请输入内容:")
if inp.upper() == "N":
break
else:
lst.append(inp)
print(lst)
4.写代码实现
v1 = {'alex','武sir','黑哥'}
v2 = []
循环提示用户输入,如果输入值在v1中存在,则追加到v2中,如果v1中不存在,则添加到v1中。(如果输入N或n则停止循环)
v1 = {'alex','武sir','黑哥'}
v2 = []
while 1:
inp = input("请输入内容:")
if inp.upper() != "N":
if inp in v1:
v2.append(inp)
else:
v1.add(inp)
else:
break
print("v1:",v1)
print("v2",v2)
5.判断以下值那个能做字典的key ?那个能做集合的元素?
1
可以作字典的key
可以作集合的元素
-1
可以作字典的key
可以作集合的元素
""
可以作字典的key
可以作集合的元素
None
可以作字典的key
可以作集合的元素
[1,2]
不可以作字典的key
不可以作集合的元素
(1,)
可以作字典的key
可以作集合的元素
{11,22,33,4}
不可以作字典的key
不可以作集合的元素
{'name':'wupeiq','age':18}
不可以作字典的key
不可以作集合的元素
6.is 和 == 的区别?
== 判断等号两边值是否相等
is 判断两边的值内存地址是否相等
7.type使用方式及作用?
使用方式:type(被测的数据类型)
作用:判断被测的数据类型是什么数据类型
8.id的使用方式及作用?
使用方式:id(被测的数据)
作用:写出被测的数据的内存地址
9.看代码写结果并解释原因
v1 = {'k1':'v1','k2':[1,2,3]}
v2 = {'k1':'v1','k2':[1,2,3]}
result1 = v1 == v2
result2 = v1 is v2
print(result1)
print(result2)
True
False
原因:
v1 和 v2不是指向同一个内存地址
在小数据池中只有整数,字符串,布尔值这三个数据类型符合缓存机制,而字典不符合.
10.看代码写结果并解释原因
v1 = {'k1':'v1','k2':[1,2,3]}
v2 = v1
result1 = v1 == v2
result2 = v1 is v2
print(result1)
print(result2)
True
True
原因:
因为v1和v2是指向同一个内存地址
11.看代码写结果并解释原因
v1 = {'k1':'v1','k2':[1,2,3]}
v2 = v1
v1['k1'] = 'wupeiqi'
print(v2)
{'k1': 'wupeiqi','k2':[1,2,3]}
原因:
因为v1和v2是指向同一个内存地址,是同一个
12.看代码写结果并解释原因
v1 = '人生苦短,我用Python'
v2 = [1,2,3,4,v1]
v1 = "人生苦短,用毛线Python"
print(v2)
[1,2,3,4,'人生苦短,我用Python']
原因:
v1 指向了另一块内存地址,但v2指向的 '人生苦短,我用Python'没有变
13.看代码写结果并解释原因
info = [1,2,3]
userinfo = {'account':info, 'num':info, 'money':info}
info.append(9)
print(userinfo)
info = "题怎么这么多"
print(userinfo)
{'account':[1,2,3,9], 'num':[1,2,3,9], 'money':[1,2,3,9]}
{'account':[1,2,3,9], 'num':[1,2,3,9], 'money':[1,2,3,9]}
原因:
第一个输出 因为开辟空间后,info在第二层内存地址进行了修改,所以userinfo也发生了改变
第二个输出 因为info指向了另一个内存地址,但userinfo没有发生改变
14.看代码写结果并解释原因
info = [1,2,3]
userinfo = [info,info,info,info,info]
info[0] = '不仅多,还特么难呢'
print(info,userinfo)
['不仅多,还特么难呢',2,3][['不仅多,还特么难呢',2,3],['不仅多,还特么难呢',2,3],['不仅多,还特么难呢',2,3],['不仅多,还特么难呢',2,3],['不仅多,还特么难呢',2,3]]
原因:
因为info[0]发生了改变,所以info为['不仅多,还特么难呢',2,3]
因为info[0]是第二层可变数据,修改后,源数据也会发生改变
15.看代码写结果并解释原因
info = [1,2,3]
userinfo = [info,info,info,info,info]
userinfo [2] [0] = '闭嘴'
print(info,userinfo)
[ '闭嘴',2,3][[ '闭嘴',2,3],[ '闭嘴',2,3],[ '闭嘴',2,3],[ '闭嘴',2,3],[ '闭嘴',2,3]]
原因:
因为userinfo [2] [0] 发生了改变,所以info[0]为"闭嘴"
因为userinfo [2] [0] 是第二层可变数据,修改后,源数据也会发生改变
16.看代码写结果并解释原因
info = [1,2,3]
user_list = []
for item in range(10):
user_list.append(info)
info[1] = "是谁说Python好学的?"
print(user_list)
[[1,"是谁说Python好学的?",3],[1,"是谁说Python好学的?",3],[1,"是谁说Python好学的?",3],[1,"是谁说Python好学的?",3],[1,"是谁说Python好学的?",3],[1,"是谁说Python好学的?",3],[1,"是谁说Python好学的?",3],[1,"是谁说Python好学的?",3],[1,"是谁说Python好学的?",3],[1,"是谁说Python好学的?",3]]
原因:
因为for循环10次,所以有九个列表
因为info是可变数据类型,又因为在第二层内存地址,所以info发生改变
17.看代码写结果并解释原因
data = {}
for i in range(10):
data['user'] = i
print(data)
{"user":9}
原因:
for循环前9次都被覆盖,最后"user"的值是9
18.看代码写结果并解释原因
data_list = []
data = {}
for i in range(10):
data['user'] = i
data_list.append(data)
print(data)
{"user":9}
原因:
for循环前9次都被覆盖,最后"user"的值是9
19.看代码写结果并解释原因
data_list = []
for i in range(10):
data = {}
data['user'] = i
data_list.append(data)
print(data_list)
[{'user':1},{'user':2},{'user':3},{'user':4},{'user':5},{'user':6},{'user':7},{'user':8},{'user':0}]
原因:
for循环的每一次循环都往date字典中加入一个键值对,然后追加到date_list里,但每次循环date被重新赋值成{},所以追加九次,且字典的值为0~9
20.使用循环打印出一下效果:
*
**
***
****
*****
****
***
**
*
*
***
*****
*******
*********
for i in range(1,6):
print("*" * i)
for i in range(4,0,-1):
print("*" * i)
for i in range(1,10,2):
print("*" * i)
21.敲七游戏. 从1开始数数. 遇到7或者7的倍数(不包含17,27,这种数)要在桌上敲⼀下. 编程来完成敲七. 给出⼀个任意的数字n. 从1开始数. 数到n结束. 把每个数字都放在列表中, 在数的过程中出现7或者7的倍数(不包含17,27,这种数).则向列表中添加⼀个'咣'
例如, 输⼊10. lst = [1, 2, 3, 4, 5, 6, '咣', 8, 9, 10]
lst = []
inp = input("请输入一个整数:")
if inp.isdecimal() and int(inp) > 0:
for i in range(1,int(inp) + 1):
if i % 7 != 0:
lst.append(i)
else:
lst.append("咣")
print(lst)
else:
print("输入错误!")