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

浙公网安备 33010602011771号