# -*- coding:utf-8 -*-
# 1) 移除 name 变量对应的值两边的空格,并输出处理结果
name = " aleX"
print(name.strip())
# 2) 判断 name 变量对应的值是否以 "al" 开头,并输出结果
print(name.startswith('al'))
# 3) 判断 name 变量对应的值是否以 "X" 结尾,并输出结果
print(name.endswith('X'))
# 4) 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
print(name.replace('l', 'p'))
# 5) 将 name 变量对应的值根据 “l” 分割,并输出结果。
print(name.split('l'))
# 6) 将 name 变量对应的值变大写,并输出结果
print(name.upper())
# 7) 将 name 变量对应的值变小写,并输出结果
print(name.lower())
# 8) 请输出 name 变量对应的值的第 2 个字符?
print(name[1])
# 9) 请输出 name 变量对应的值的前 3 个字符?
print(name[0:3])
# 10) 请输出 name 变量对应的值的后 2 个字符?
print(name[-2:])
# 11) 请输出 name 变量对应的值中 “e” 所在索引位置?
print(name.index('e'))
# 12) 获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo。
name_new = name[:-1]
print(name_new)
'''
有列表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]
date = data[2][2]
print(name,age,year,month,date)
#按年龄排序字典
l=[
{'name':'alex','age':84},
{'name':'oldboy','age':73},
{'name':'egon','age':18},
]
l.sort(key=lambda item: item['name'])
print(l)
#print(l[1].items())
'''
实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数加入购物列表,如果输入为空或其他非法输入则要求用户重新输入
msg_dic={
'apple':10,
'tesla':100000,
'mac':3000,
'lenovo':30000,
'chicken':10,
}
'''
msg_dic={
'apple':10,
'tesla':100000,
'mac':3000,
'lenovo':30000,
'chicken':10,
}
user_select = []
while True:
for name, value in msg_dic.items():
print('商品名:{name},价格:{price}'.format(name=name, price=value))
user_find = input('请输入商品名:》').strip()
if user_find and user_find in msg_dic:
print('你已选择%s' % user_find)
user_count = input('请输入数量').strip()
if user_count.isdigit():
user_select.append((user_find, msg_dic[user_find], int(user_count)))
print(user_select)
print(user_select[0][0],user_select[0][1],user_select[0][2])
break
else:
print('操作错误,请重新输入')
else:
print('操作错误,请重新输入')
'''
1 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],
将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。(2分)
'''
l = [11,22,33,44,55,66,77,88,99,90]
d = {'key1':[],'key2':[]}
for i in l:
if i >66:
d['key1'].append(i)
else:
d['key2'].append(i)
print(d)
'''
2 统计s='hello alex alex say hello sb sb'中每个单词的个数
结果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}
'''
s='hello alex alex say hello sb sb'
d = {}
d['hello']=s.count('hello')
d['alex']=s.count('alex')
d['say']=s.count('say')
d['sb']=s.count('sb')
l = s.split()
for i in l:
if i in d:
d[i] += 1
else:
d[i]=1
print(d)
'''有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
1. 求出即报名python又报名linux课程的学员名字集合
2. 求出所有报名的学生名字集合
3. 求出只报名python课程的学员名字
4. 求出没有同时这两门课程的学员名字集合
'''
pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
linuxs={'wupeiqi','oldboy','gangdan'}
print(pythons & linuxs)
print(pythons | linuxs)
print(pythons - linuxs)
print(pythons ^ linuxs)
#1. 有列表l=['a','b',1,'a','a'],列表元素均为可hash类型,去重,得到新列表,且新列表无需保持列表原来的顺序
l=['a','b',1,'a','a']
print(set(l))
#2.在上题的基础上,保存列表原来的顺序
k = []
for i in l:
if i not in k:
k.append(i)
print(k)
#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'},
]
'''
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'},
]
L = []
for i in l:
if i not in L:
L.append(i)
print(L)
#1. 文件a.txt内容:每一行内容分别为商品名字,价钱,个数,求出本次购物花费的总钱数
f = open('a.txt', 'r', encoding='utf-8')
lines =f.readlines()
f.close()
sum = 0
for line in lines:
l = line.replace('\n','')
k = l.split(' ')
sum = sum + int(k[1])*int(k[2])
print(sum)