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