# 考试题

# 1.写代码,有如下变量,请按照要求实现每个功能 # name = " alrenX "

# a.移除name变量对应的值两边的空格,并输出移除后的内容
print(name.split())
# b.判断name变量对应的值是否以 "al"开头,并输出结果
print(name.startswith('al'))
# c.判断name变量对应的值是否以 "X"结尾,并输出结果
print(name.endswith('X'))
# d.将name变量对应的值中的 " l" 替换为 " p",并输出结果
print(name.replace('alrenX', 'aprenX'))
# e.将name变量对应的值根据 " l" 分割,并输出结果。
print(name.split('l'))
# f.请问,上一题 e分割之后得到值是什么类型?
print('分割之后得到值是什么类型为:列表')
# g.将name变量对应的值变大写,并输出结果
print(name.upper())
# h.将name变量对应的值变小写,并输出结果
print(name.lower())
# i.请输出name变量对应的值的第2个字符?
print(list(name)[2])
# j.请输出name变量对应的值的前3个字符?
print(list(name)[:3])
# k.请输出name变量对应的值的后2个字符?
print(list(name)[-2:])
# l.请输出name变量对应的值中 "e" 所在索引位置?
print(name.find('e'))

# 2.写代码,有如下列表,按照要求实现每一个功能(所有练习题同样适用于元组)

li = ['pythonryz', 'eric', 'rain']
# a.计算列表长度并输出
print(len(li))
# b.列表中追加元素"seven",并输出添加后的列表
seven = li.append('seven')
print(li)
# c.请在列表的第1个位置插入元素 "Tony",并输出添加后的列表
Tony = li.insert(0, 'Tony')
print(li)
# d.请修改列表第2个位置的元素为 "Kelly",并输出修改后的列表
li[1] = 'Kelly'
print(li)
# e.请删除列表中的元素"eric",并输出修改后的列表
eric = li.remove('eric')
print(li)
# f.请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
two = li.pop(1)
print('删除的元素', two)
print('删除元素后的列表', li)
# g.请删除列表中的第3个元素,并输出删除元素后的列表
three = li.pop(2)
print(li)
# h.请删除列表中的第2至4个元素,并输出删除元素后的列表
del li[1:4]
print(li)
# i.请将列表所有的元素反转,并输出反转后的列表
r = li.reverse()
print(li)
# j.请使用for、len、range 输出列表的索引
for i in range(len(li)):
    print(i)
# k.请使用enumrate输出列表元素和序号(序号从 100 开始)
for index, i in enumerate(li, 100):
    print(index, i)
# l.请使用for循环输出列表的所有元素
for i in li:
    print(i)

# 3.有如下变量,请实现要求的功能

tu=("ryz", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3":(11, 22, 33)}, 44])
# a. 讲述元组的特性
print('元组的特性:1.元组中的元素不可修改,2.元组是以小括号包裹')
# b. 请问 tu 变量中的第一个元素 "ryz" 是否可被修改?
print('不可以被修改')
# c. 请问 tu 变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 "Seven"
print('k2对应的值的类型是:', type(tu[1][2]['k2']))

print('可以被修改')

tu[1][2]['k2'].append('Seven')
print(tu)
# d. 请问 tu 变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 "Seven"
print('k3对应的值的类型是:', type(tu[1][2]['k3']))
print('不可以被修改')

# 4.字典

dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
# a. 请循环输出所有的 key
for i in dic:
    print(i)
# b. 请循环输出所有的 value
for j in dic:
    print(dic.get(j))
# c. 请循环输出所有的 key 和 value
for k in dic:
    print(dic.items())
# d. 请在字典中添加一个键值对, "k4":"v4",输出添加后的字典
dic.setdefault('k4', 'v4')
print(dic)
# e. 请修改字典中 "k1" 对应的值为 "ryz",输出修改后的字典
dic['k1'] = 'ryz'
print(dic)
# f. 请在 k3 对应的值中追加一个元素 44,输出修改后的字典
dic['k3'].append(44)
print(dic)
# g. 请在 k3 对应的值的第 1 个位置插入个元素 18,输出修改后的字典
dic['k3'].insert(0, 18)
print(dic)

# 5.转换

# a. 将字符串 s="ryz" 转换成列表
s = list('ryz')
print(type(s))
# b. 将字符串 s="ryz" 转换成元祖
s = tuple('ryz')
print(type(s))
# b. 将列表 li=["ryz","seven"] 转换成元组
li = ("ryz", "seven")
print(type(li))
# c. 将元祖 tu=('ryz',"seven") 转换成列表
tu = ['ryz',"seven"]
print(type(tu))
# d. 将列表 li=["ryz","seven"] 转换成字典且字典的 key 按照 10 开始向后递增
li = ["ryz", "seven"]
for i, index in enumerate(li, 10):
    # print(i)
    s = dict.fromkeys(index, str(i))
    print(s)

# 6.转码

# n="美少女"
# a. 将字符串转换成 utf-8 编码的字节,并输出,然后将该字节再转换成 utf-8 编码字符串,再输出
# b. 将字符串转换成 gbk 编码的字节,并输出,然后将该字节再转换成 gbk 编码字符串,再输出
n = "美少女"
zj = n.encode('utf-8')
print(zj)
zfc = zj.decode('utf-8')
print(zfc)
#
zj = n.encode('gbk')
print(zj)
zfc = zj.decode('gbk')
print(zfc)

# 7.元素分类

# 7.元素分类
# 有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个 key 中,将小于 66 的值保存至第二个 key 的值中。
# 即: {'k1': 大于 66 的所有值,'k2': 小于 66 的所有值}
num = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
d = []
x = []
s = {}
for i in num:
    if i > 66:
        d.append(i)
        dic = s.setdefault('k1', d)
        print(s)
    elif i < 66:
        x.append(i)
        dic = s.setdefault('k2', x)
        print(s)
    else:
        print('等于66')

# 8.购物车

# 功能要求:
# 要求用户输入总资产,例如: 2000
# 显示商品列表,让用户根据序号选择商品,加入购物车
# 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
]
q = int(input('请输入你的总资产:'))
while True:
    m = int(input('''1. 电脑——价格: 1999
    2. 鼠标——价格: 10
    3. 游艇——价格: 20
    4. 美女——价格: 998
    你想要买什么:'''))
    if m not in range(1, 5):
        print('输入有误,请重新输入')
    else:
        if m == 1:
            print('你选择购买的是:', goods[0]['name'])
            if q < goods[0]['price']:
                print('账户余额不足')
            else:
                print('购买成功!\n您现在余额还有:%d 元' % (q - goods[0]['price']))
            continue
        elif m == 2:
            print('你选择购买的是:', goods[1]['name'])
            if q < goods[1]['price']:
                print('账户余额不足')
            else:
                print('购买成功!\n您现在余额还有:%d 元' % (q - goods[0]['price']))
        elif m == 3:
            print('你选择购买的是:', goods[2]['name'])
            if q < goods[2]['price']:
                print('账户余额不足')
            else:
                print('购买成功!\n您现在余额还有:%d 元' % (q - goods[0]['price']))
        elif m == 4:
            print('你选择购买的是:', goods[3]['name'])
            if q < goods[3]['price']:
                print('账户余额不足')
            else:
                print('购买成功!\n您现在余额还有:%d 元' % (q - goods[0]['price']))
        else:
            print('输入有误,请重新输入')

# 9.查找元素,移除空格,并查找以 a或A开头 并且以 c 结尾的所有元素

li = ["alec", " aric", "ryz", "Tony", "rain"]
for i in li:
    d = i.split()
    if (d[0].startswith('a') or d[0].startswith('A')) and d[0].endswith('c'):
        print(j)

tu = ("alec", " aric", "ryz", "Tony", "rain")
for j in tu:
    d = j.split()
    if (d[0].startswith('a') or d[0].startswith('A')) and d[0].endswith('c'):
        print(j)

dic = {'k1': "ryz", 'k2': ' aric',  "k3": "ryz", "k4": "Tony"}
for k in dic:
    f = dic.get(k)
    d = f.split()
    if (d[0].startswith('a') or d[0].startswith('A')) and d[0].endswith('c'):
        print(f)

# 10.用户交互,显示省市县三级联动的选择

dic = {
    "河北": {
        "石家庄": ["鹿泉", "藁城", "元氏"],
        "邯郸": ["永年", "涉县", "磁县"],
    },
    "湖南": {
        "长沙":['a','b','c'],
        "株洲":['d','e','f']
    },
    "湖北": {
        "武汉":['g','h','i'],
        "黄石":['j','k','l']
    }
}
while 1:
    print('当前支持查询的省')
    for i in dic:
        print(i)
    s = input('请输入你要查询的省:')
    if s == '河北':
        for j in dic[s]:
            print(j)
        x = input('请输入你要查询的城市:')
        if x == '石家庄':
            for k in dic[s][x]:
                print(k)
        if x == '邯郸':
            for k in dic[s][x]:
                print(k)
        else:
            print('输入有误,请重新输入')
        s = input('请输入你要查询的省:')
    elif s == '湖南':
        for j in dic[s]:
            print(j)
        x = input('请输入你要查询的城市:')
        if x == '长沙':
            for k in dic[s][x]:
                print(k)
        if x == '株洲':
            for k in dic[s][x]:
                print(k)
        else:
            print('输入有误,请重新输入')
    elif s == '湖北':
        for j in dic[s]:
            print(j)
        x = input('请输入你要查询的城市:')
        if x == '武汉':
            for k in dic[s][x]:
                print(k)
        if x == '黄石':
            for k in dic[s][x]:
                print(k)
        else:
            print('输入有误,请重新输入')
    else:
        print('输入有误,请重新输入')

# 11.题目1:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下 求它在第10次落地时,共经过多少米?第10次反弹多高?

s = 100.0
h = s / 2

for n in range(2, 11):
    s += 2 * h
    h /= 2
print('共经过:%f米' % s)
print('第十次反弹:%f米' % h)
Last modification:July 23rd, 2020 at 11:43 pm
如果觉得我的文章对你有用,请随意赞赏