目录

Python学习-Day04

学习Python的第四篇日志。

Python学习-Day04

今天将第八章的试题练习了一下。浅拷贝深拷贝

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# -------------------------------------------
# 笔试题(部分)
# -------------------------------------------
# 12.写代码实现将字符串 v = “全栈21期” 反转
v = '我吃西红柿'
li = list(v)
li.reverse()
print(li)

# -------------------------------------------
# 13.看结果写结果
info = [
    {'k1': 1, 'k2': {'k9': 'oldboy', 'k10': '一天天'}},
    (11, 22, 33, 44),
    {199, 2, 3, 4, 5},
    True,
    ['武沛齐', '景女神', {'extra': ("alex", 'eric', [18, 20])}]
]
# 根据索引获取上述结构中的 1
print(info[0]['k1'])
# 请根据索引获取上述结构中的 “oldboy”
print(info[0]['k2']['k9'])
# 请根据索引获取上述结构中的 44
print(info[1][-1])
# 根据索引获取上述结构中的 “天天”
print(info[0]['k2']['k10'][-2:])
# 请循环打印 上述结构 中的集合
for i in info[2]:
    print(i)  # 无序
# 在上述结构中 extra 所在的字典中添加一个键值对,并设置键为:True, 值为 ”真“
info[-1][-1][True] = "真"
print(info)
# 请在上述结构中 [18,20] 中添加一个整型元素:69
info[-1][-1]['extra'][-1].insert(1, 69)
print(info)

# -------------------------------------------
# 14.看代码写结果
# 布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。
result = 1 > 6 and 8 < 9  # 优先级:比较运算符>赋值运算符>逻辑运算符 False and True  >> False
print(result)  # False
# 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值
result = 1 or 2
print(result)  # 1
result = 0 or True
print(result)  # True
# and有更高的优先级
result = 1 and 8 or True and 4  # >> 8 or 4 >> 8
print(result)  # 8
result = 'Alex' or '' and 'oldboy'  # >> 'Alex' or False >> 'Alex'
print(result)  # 'Alex'

# -------------------------------------------
# 15.写代码实现实现将字符串 v = “k1|v1,k2|v2,k3|v3…” 转换成字典 {‘k1’:’v1’,’k2’:’v2’,’k3’:’v3’..}
v = 'k1|v1,k2|v2,k3|v3'
vDict = {}
v1 = v.split(",")
print(v1)
for i in v1:
    vDict[i.split("|")[0]] = i.split("|")[1]
print(vDict)

# -------------------------------------------
# 16.实现一个整数乘法计算器,输入:5*9*99.... 或5* 9 * 10 * 99 或5 * 9 * 99(含空白)
x = []
content = input("请输入算式:")
con_list = content.split("*")
for i in con_list:
    i.strip()
    x.append(i)
count = 1
for i in x:
    count *= int(i)
print(count)

# -------------------------------------------
# 17.看代码写v1, v2?
# 传递了地址,修改了地址的值
v1 = [1, 2, 3, 4, 5]
v2 = [v1, v1, v1]
v2[1][0] = 111
v2[2][0] = 222
print(v1)  # [222, 2, 3, 4, 5]
print(v2)  # [[222, 2, 3, 4, 5], [222, 2, 3, 4, 5], [222, 2, 3, 4, 5]]

# -------------------------------------------
# 18.请将info中索引值为偶数的值使用 “*” 拼接起来,并写入到文件 b.txt 中
info = ['你是', '到底', '是', '不是', '一个', '魔鬼']
list1 = []
for i in range(len(info)):
    if i % 2 == 0:
        list1.append(info[i])
str1 = "*".join(list1)
print(str1)
f = open('b.txt', mode='w', encoding='utf-8')
f.write(str1)
f.flush()
f.close()

# -------------------------------------------
# 机试题
# -------------------------------------------
# 1.根据车牌信息,分析出各省的车牌持有数量
cars = ['鲁A32444', '鲁B12333', '京B8989M', '黑C49678', '黑C46555', '沪B25041', '黑C34567', '沪A46556']
info = {'鲁': 0, '黑': 0, '京': 0, '沪': 0}
for car in cars:
    if car[0] == '鲁':
        info['鲁'] += 1
    elif car[0] == '京':
        info['京'] += 1
    elif car[0] == '黑':
        info['黑'] += 1
    else:
        info['沪'] += 1
print(info)

# -------------------------------------------
# 2.利用文件操作,将其构造成如下数据类型。
# # data.txt文件内容如下
#     id,name,age,phone,job
#     1,alex,22,13651054608,IT
#     2,wusir,23,13304320533,Tearcher
#     3,taibai,18,1333235322,IT
# info = [{'id':'1','name':'alex','age':'22','phone':'13651054608','job':'IT'},......]
dic = []
dic2 = []
info = {}
f = open('b.txt', mode='r', encoding='utf-8')
import copy
for line in f:
    dic.append(line.strip().split(','))
titleList = dic.pop(0)
print(dic)
for i in dic:
    for j in range(len(i)):
        info[titleList[j]] = i[j]
    dic2.append(copy.deepcopy(info))
print(dic2)

# -------------------------------------------
# 3.请使用for循环打印 9*9乘法表
for i in range(10):
    for j in range(i):
        print(" %s*%s=%s " % (i, j+1, i*(j+1)), end='')
    print('')