day2


1、写代码,有如下变量,请按照要求实现每个功能 name = " aleX"
    01)移除 name 变量对应的值两边的空格,并输出处理结果

name = " aleX"
name = name.strip()
print(name)
aleX

    02)判断 name 变量对应的值是否以 "al" 开头,并输出结果

name = " aleX"
print(name.startswith('al'))
False

    03)判断 name 变量对应的值是否以 "X" 结尾,并输出结果

name = " aleX"
print(name.endswith('X'))
True

    04)将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果

name = " aleX"
print(name.replace('a','p'))
 pleX

    05)将 name 变量对应的值根据 “l” 分割,并输出结果

name = " aleX"
print(name.split('a'))
[' ', 'leX']

    06)将 name 变量对应的值变大写,并输出结果

name = " aleX"
print(name.upper())
 ALEX

    07)将 name 变量对应的值变小写,并输出结果

name = " aleX"
print(name.lower())
 alex

    08)请输出 name 变量对应的值的第 2 个字符

name = " aleX"
print(name[1])
a

    09)请输出 name 变量对应的值的前 3 个字符

name = " aleX"
print(name[:3])
 al

    10)请输出 name 变量对应的值的后 2 个字符

name = " aleX"
print(name[-2:])
eX

    11)请输出 name 变量对应的值中 “e” 所在索引位置

name = " aleX"
print(name.find('e'))
3
name = " aleX"
print(name.index('e'))
3

    12)获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo

name = "oldboy"
new = name[:-1]
print(new)
oldbo

2、有列表data=['alex',49,[1900,3,18]],分别取出列表中的名字,年龄,出生的年,月,日赋值给不同的变量

data=['alex',49,[1900,3,18]]

name=data[0] age=data[1] year=data[2][0] month=data[2][1] day=data[2][2]
print(name,age,year,month,day) alex 49 1900 3 18

3、用列表模拟队列(先进先出,后进后出)

rabbitmq=[0]
x=1
while x < 5:
    rabbitmq.append(x)
    print(rabbitmq)
    x+=1
    print(rabbitmq.pop(0))
[0, 1]
0
[1, 2]
1
[2, 3]
2
[3, 4]
3

4、用列表模拟堆栈(后进先出)

rabbitmq=[0]
x=1
while x < 5:
    rabbitmq.insert(0,x)
    x+=1
    print(rabbitmq)
    print(rabbitmq.pop(0))
[1, 0]
1
[2, 0]
2
[3, 0]
3
[4, 0]
4

5、有如下列表,请按照年龄排序(涉及到匿名函数)

l=[
    {'name':'alex','age':84},
    {'name':'oldboy','age':73},
    {'name':'egon','age':18},
]

l.sort(key=lambda item:item['age'])
print(l)

6、简单购物车,要求如下:
实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数加入购物列表,如果输入为空或其他非法输入则要求用户重新输入

msg_dic={
'apple':10,
'tesla':100000,
'mac':3000,
'lenovo':30000,
'chicken':10,
}

menu=[]
while True:
    for buyname in msg_dic:
        print(buyname,msg_dic[buyname])
    buyname = input('商品名称: ').strip()
    if buyname not in msg_dic:
        print('请您输入正确的商品名称')
        continue
    buycount = input('商品数量: ').strip()
    if buycount.isdigit():
        menu.append((buyname,msg_dic[buyname],int(buycount)))
        print(menu)
    else:
        print('请您输入正确的商品数量')

7、有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中
即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}

x_dic={}
x=[11,22,33,44,55,66,77,88,99,90]
k1=[]
k2=[]
for y in x:
    if y == 66:
        continue
    elif y > 66:
        k1.append(y)
    else:
        k2.append(y)
x_dic['k1']=k1
x_dic['k2']=k2
print(x_dic)

{'k1': [77, 88, 99, 90], 'k2': [11, 22, 33, 44, 55]}

8、统计s='hello alex alex say hello sb sb'中每个单词的个数
结果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}

s='hello alex alex say hello sb sb'             
s_list=s.split()
s_dic={}
for x in s_list:
    s_dic[x]=s_list.count(x)
print(s_dic)
{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}

9、关系运算
有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
linuxs={'wupeiqi','oldboy','gangdan'}

    1)求出即报名python又报名linux课程的学员名字集合

print(pythons & linuxs)

    2)求出所有报名的学生名字集合

print(pythons | linuxs)

    3)求出只报名python课程的学员名字

print(pythons - linuxs)

    4)求出没有同时这两门课程的学员名字集合

print(pythons ^ linuxs)

10、去重
    1)有列表l=['a','b',1,'a','a'],列表元素均为可hash类型,去重,得到新列表,且新列表无需保持列表原来的顺序

l=['a','b',1,'a','a']
print(list(set(l)))
{1, 'b', 'a'}

    2)在上题的基础上,保存列表原来的顺序

l=['a','b',1,'a','a']
x=list()
for i in l:
    if i not in x:
        x.append(i)
print(x)
['a', 'b', 1]

    3)去除文件中重复的行,肯定要保持文件内容的顺序不变

 

    4)有如下列表,列表元素为不可hash类型,去重,得到新列表,且新列表一定要保持列表原来的顺序

l=[
    {'name':'egon','age':18,'sex':'male'},
    {'name':'alex','age':73,'sex':'male'},
    {'name':'egon','age':20,'sex':'female'},
    {'name':'egon','age':18,'sex':'male'},
    {'name':'egon','age':18,'sex':'male'},
]
x=list()
for i in l:
    if i not in x:
        x.append(i)
print(x)

[{'name': 'egon', 'age': 18, 'sex': 'male'}, {'name': 'alex', 'age': 73, 'sex': 'male'}, {'name': 'egon', 'age': 20, 'sex': 'female'}]

11、文件a.txt内容:每一行内容分别为商品名字,价钱,个数,求出本次购物花费的总钱数

apple 10 3
tesla 100000 1
mac 3000 2
lenovo 30000 3
chicken 10 3

12、修改文件内容,把文件中的alex都替换成SB

 
posted @ 2017-09-15 13:27  戴成旭  阅读(109)  评论(0)    收藏  举报