第六天作业
day06作业
1.有如下
v1 = {'郭宝元','李杰','太白','梦鸽'}
v2 = {'李杰','景女神}
-
请得到 v1 和 v2 的交集并输出
v1 = {'郭宝元', '李杰', '太白', '梦鸽'} v2 = {'李杰', '景女神'} print(v1 & v2)
-
请得到 v1 和 v2 的并集并输出
v1 = {'郭宝元', '李杰', '太白', '梦鸽'} v2 = {'李杰', '景女神'} print(v1 | v2)
-
请得到 v1 和 v2 的 差集并输出
v1 = {'郭宝元', '李杰', '太白', '梦鸽'} v2 = {'李杰', '景女神'}print(v1 & v2) print(v1 - v2)
-
请得到 v2 和 v1 的 差集并输出
v1 = {'郭宝元', '李杰', '太白', '梦鸽'} v2 = {'李杰', '景女神'} print(v2 - v1)
2.循环提示用户输入,并将输入内容追加到列表中(如果输入N或n则停止循环)
-
lst = [] while True: mig = input("请输入:").upper() lst.append(mig) if mig == "N": break print(lst)
3.写代码实现
v1 = {'alex','武sir','黑哥'}
v2 = []
循环提示用户输入,如果输入值在v1中存在,则追加到v2中,如果v1中不存在,则添加到v1中。(如果输入N或n则停止循环)
v1 = {'alex','武sir','黑哥'}
v2 = []
while True:
msg = input("请输入:")
if "N" == msg.upper():
break
for i in vi:
if msg == i:
v2.append(meg)
vi.append(meg)
print(v1, v2)
4.判断以下值那个能做字典的key ?那个能做集合的元素?
1
-1
""
None
[1,2]
(1,)
{11,22,33,4}
{'name':'wupeiq','age':18}
能做字典的key: 1 -1 ""
能做集合的元素:1 -1 "" None (1,) {11,22,33,4}
5.is 和 == 的区别?
is 是判断两边的内存地址是否相同
== 是判断两边是否相等
6.type使用方式及作用?
type 的使用方式 :type(变量名)
type 的作用: 查看变量的数据类型
7.id的使用方式及作用?
id的使用方式 : id(变量)
id的作用:查看变量的内存地址
8.看代码写结果并解释原因
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
原因:在Python中预算福级别:比较运算符(==) > 赋值运算符(=) > 身份运算符(is),并且列表是可变的
因此result1 = v1 == v2 -> result1 = True
result2 = v1 is v2 -> v1 is v2 -> False
9.看代码写结果并解释原因
v1 = {'k1':'v1','k2':[1,2,3]}
v2 = v1
result1 = v1 == v2
result2 = v1 is v2
print(result1)
print(result2)
上述代码结果为: True
False
原因:在Python中预算福级别:比计运算符(==) > 赋值运算符(=) > 身份运算符(is),
因此result1 = v1 == v2 -> result1 = True
result2 = v1 is v2 -> v1 is v2 -> True
10.看代码写结果并解释原因
v1 = {'k1':'v1','k2':[1,2,3]}
v2 = v1
v1['k1'] = 'wupeiqi'
print(v2)
上述代码运行结果: {'k1': 'wupeiqi', 'k2': [1, 2, 3]}
解释原因:将v1赋值给v2,v1、v2指向同一内存地址,字典是可变的,对v1字典中键的值重新赋值,v2也还在指向v1的地址
11.看代码写结果并解释原因
v1 = '人生苦短,我用Python'
v2 = [1,2,3,4,v1]
v1 = "人生苦短,用毛线Python"
print(v2)
上述代码运行结果:[1, 2, 3, 4, '人生苦短,我用Python']
解释原因:直接输出v2
12.看代码写结果并解释原因
info = [1,2,3]
userinfo = {'account':info, 'num':info, 'money':info}
info.append(9)
print(userinfo)
info = "题怎么这么多"
print(userinfo)
上述代码运行结果:{'account': info, 'num': info, 'money': [1, 2, 3,9]}
{'account': info, 'num': info, 'money': [1, 2, 3,9]}
解释原因: 只有修改第一层的时候源数据不受影响,给可变数据类型进行添加的时候源数据会受影响
13.看代码写结果并解释原因
info = [1,2,3]
userinfo = [info,info,info,info,info]
info[0] = '不仅多,还特么难呢'
print(info,userinfo)
上述代码运行结果:['不仅多,还特么难呢', 2, 3][[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]]
解释原因: 只有修改第一层的时候源数据不受影响,给可变数据类型进行添加的时候源数据会受影响
14.看代码写结果并解释原因
info = [1,2,3]
userinfo = [info,info,info,info,info]
userinfo[2][0] = '闭嘴'
print(info,userinfo)
上述代码运行结果:[[1, 2, 3][1, '闭嘴', 3][1, '闭嘴', 3][1, '闭嘴', 3][1, '闭嘴', 3][1, '闭嘴', 3]]
解释原因: 只有修改第一层的时候源数据不受影响,给可变数据类型进行添加的时候源数据会受影响
15.看代码写结果并解释原因
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循环结束后 得到 user_list = [[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3]]
执行 info[1] = "是谁说Python好学的?" 得到 info = [1,"是谁说Python好学的?",3]
info 是 可变的数据类型, 给可变数据类型进行添加的时候源数据会受影响
16.看代码写结果并解释原因
data = {}
for i in range(10):
data['user'] = i
print(data)
上述代码运行结果:{‘user’:9}
原因:for 循环完成后 data['user'] = 9 得到 字典 data = {‘user’:9}
17.看代码写结果并解释原因
data_list = []
data = {}
for i in range(10):
data['user'] = i
data_list.append(data)
print(data_list)
上述代码运行结果:[{‘user’:9}]
原因:for 循环完成后 data['user'] = 9 得到 字典 data = {‘user’:9}
data_list.append(data) 得到 data_list = [{‘user’:9}]
18.看代码写结果并解释原因
data_list = []
for i in range(10):
data = {}
data['user'] = i
data_list.append(data)
print(data_list)
上述代码运行结果:{0,1,2,3,4,5,6,7,8,9,9}
原因:for循环完后 data = {} ,i=9
因此 data['user'] = 9 得到 data = {'user':9}
data_list.append(data) 得到 data_list = {'user':9}
19.使用循环打印出一下效果:
*
**
***
****
*****
for i in range(6):
print("*" * i)
print(" ")
****
***
**
*
for i in range(4, 0, -1):
print("*" * i)
*
***
*****
*******
*********
for i in range(1, 10, 2):
print("*" * i)
20.敲七游戏. 从1开始数数. 遇到7或者7的倍数(不包含17,27,这种数)要在桌上敲⼀下. 编程来完成敲七. 给出⼀个任意的数字n. 从1开始数. 数到n结束. 把每个数字都放在列表中, 在数的过程中出现7或 者7的倍数(不包含17,27,这种数).则向列表中添加⼀个'咣'
例如, 输⼊10. lst = [1, 2, 3, 4, 5, 6, '咣', 8, 9, 10]
n = int(input("请输入一个数:"))
i = 0
lst = []
while i <= n:
lst.append(i)
if lst[i] % 7 == 0:
lst[i] = "咣"
i += 1
lst.pop(0)
print(lst)