目录
1.姓名
将一些朋友的姓名存储在一个列表里面,并将其命名names。依次访问列表中的每一个元素,并打印出来
names=['zsy','wq','znh']
print(names)
2.问候语
继续使用1中的列表,不但打印每个朋友的姓名,并且要为每人打印一条信息。每条信息都有相同的问候语,开头为朋友的名字。
(提示:字符串的f表达式的使用)
names=['zsy','wq']
for i in range(0,len(names)):
print(names[i]+'你好!')
3.嘉宾名单
如果你可以邀请任何人一起共进晚餐(无论是在世的还 是故去的),你会邀请哪些人?请创建一个列表,其中包含至少三个你想邀请 的人,然后使用这个列表打印消息,邀请这些人来与你共进晚餐。
names=['zsy','wq','zz']
for i in range(0,len(names)):
print(names[i])
4.修改嘉宾名单
你刚得知有位嘉宾无法赴约,因此需要另外邀请一位嘉宾。
~以完成练习4时编写的程序为基础,在程序末尾添加一条print 语句,指出哪位嘉宾无法赴约。
~修改嘉宾名单,将无法赴约的嘉宾的姓名替换为新邀请的嘉宾的姓名。
~再次打印一系列消息,向名单中的每位嘉宾发出邀请。
names=['zsy','wq']
print("wq")
for i in range(0,len(names)):
print(names[i]+'你好!')
5.添加嘉宾
你刚找到了一个更大的餐桌,可容纳更多的嘉宾。请想想你还想邀请哪三位嘉宾。
~以完成练习3-4或练习3-5时编写的程序为基础,在程序末尾添加一条 print语句,指出你找到了一个更大的餐桌
~使用insert()将一位新嘉宾添加到名单开头
names=['zsy','wq']
x='zz'
names.insert(0,x) #在0位置添加x
for i in range(0,len(names)):
print(names[i]+'你好!')
~使用insert()将一位新嘉宾添加到名单中间
names=['zsy','wq']
x='zz'
y=int(len(names)/2)
names.insert(y,x)
for i in range(0,len(names)):
print(names[i]+'你好!')
~使用append()将一位新嘉宾添加到名单末尾
names=['zsy','wq']
x='zz'
names.append(x)
for i in range(0,len(names)):
print(names[i]+'你好!')
~打印一系列消息对每位嘉宾发出邀请
6.缩减名单
以练习5完成的程序为基础,在末尾添加一行代码打印一条你只能邀请两位嘉宾共进晚餐的消息。
~使用pop()不断地删除名单中的嘉宾,直到只剩下两位嘉宾为止。每次删除一位嘉宾时,都打印一条消息,让该嘉宾知道你的歉意,无法邀请ta来共进晚餐
names=['a','b','c','d','e','f']
while int(len(names))>2:
names.pop()
print(names[int(len(names))-1]+' sorry')
~对于剩下的两位嘉宾,都打印一条消息,指出ta依然在首要人之列
names=['a','b','c','d','e','f']
while int(len(names))>2:
names.pop()
print(names[int(len(names))-1]+' sorry')
for i in range(0,int(len(names))):
print(names[i]+' is still in our list')
~使用del将最后两位嘉宾从名单中删除,让名单变成空的。打印该名单,核实改程序结束时名单确实是空的
names=['a','b','c','d','e','f']
while int(len(names))>2:
names.pop()
del names[0:int(len(names))]
if int(len(names))>0:
print('List is not empty!')
else:
print('List is empty!')
7.放眼世界
想出至少5个你渴望去旅行的地方。将这些名字存储在一个列表之中,并确保其中元素不是按字母顺序排列的。
~按照原始顺序打印每一个元素
l=['Bei jing','Yun Nan','Zhe Jiang','Hua Shan','Hong kong']
for i in range(0,int(len(l))):
print(l[i]+' is where I want to visit!')
~使用sorted()方法按字母顺序打印这个列表,同时不要修改它
sorted()作为一个内置库的函数可以创建一个临时序列,用法如下:
sorted(list)
效果:
按升序返回包含可迭代对象中的所有项的新列表。可以提供自定义键函数来自定义排序顺序,并且可以设置反向标志以降序请求结果。
若想调整为降序,加入参数reverse=True即sorted(list, reverse=True)
l=['Bei jing','Yun Nan','Zhe Jiang','Hua Shan','Hong kong']
print(sorted(l))
~使用sorted()按照字符相反顺序输出列表的所有元素,并且不改变原始列表
l=['Bei jing','Yun Nan','Zhe Jiang','Hua Shan','Hong kong']
print(sorted(l,reverse=True))
~打印一遍原始列表
~使用reverse()修改原始列表为倒序,并打印
l=['Bei jing','Yun Nan','Zhe Jiang','Hua Shan','Hong kong']
l.reverse()
print(l)
~再次使用reverse()又重新变为原始的列表,并打印
l=['Bei jing','Yun Nan','Zhe Jiang','Hua Shan','Hong kong']
l.reverse()
l.reverse()
print(l)
~使用sort()修改列表为字母顺序的排列,并打印
l=['Bei jing','Yun Nan','Zhe Jiang','Hua Shan','Hong kong']
l.sort()
print(l)
~使用sort()修改列表为字母反序的排列,并打印
(提示:sort()方法也有reverse参数)
l=['Bei jing','Yun Nan','Zhe Jiang','Hua Shan','Hong kong']
l.sort(reverse=True)
print(l)
8.外星人颜色
假设在游戏中刚射杀了一个外星人,请创建一个名为AlienColor(或者alien_color)的变量,并赋值为'green', 'yellow', 或'red'。
编写一条if语句,判断外星人是否是绿色的,如果是,则打印消息,玩家获得了5分。
AlienColor='green'
if AlienColor=='green':
print('You get five scores!')
9.外星人2
像练习1一样设置外星人的颜色,并编写一个if-else的结构。
·如果外星人是绿色的,则输出一条消息,指出玩家因射杀该外星人获得5分。
·如果外星人不是绿色,则输出该玩家获得10分。
AlienColor='green'
if AlienColor=='green':
print('You get five scores!')
else:
print('You get ten scores!')
10.外星人的颜色3
将练习2的结构改为if-elif-else结构
·如果外星人是绿色,输出玩家获得5分;
·如果外星人是黄色,输出玩家获得10分;
·如果外星人是红色,输出玩家获得15分;
AlienColor=input()
if AlienColor=='green':
print('You get five scores!')
elif AlienColor=='yellow':
print('You get ten scores!')
elif AlienColor=='red':
print('You get fifteen scores!')
11.人生的不同阶段
设置变量age的值,再编写一个if-elif-else结构,根据age的值判断一个人处于人生的什么阶段?
·如果年龄小于2岁,指出这个人是婴儿;
·2(含)~ 4岁,指出这个人是幼儿;
·4(含)~ 13岁,指出这个人是儿童;
·13(含)~ 18岁,指出这个人是青少年;
·18(含)~ 65岁,指出这个人是成年人;
·大于65岁,指出这个人是老年人;
age=int(input())
if age<2:
print('He is a young baby!')
elif age>=2 and age<4:
print('He is a baby!')
elif age>=4 and age<13:
print('He is a child!')
elif age>=13 and age<18:
print('He is a teenager!')
elif age>=18 and age<65:
print('He is an adult!')
else:
print('He is an elder!')
12.思考如何判断序列(例如列表)为空?
·构造一个空序列,使用if语句,若序列为空则输出Empty。
a=[]
if len(a)==0:
print('List is empty!')
else:
print('List is not empty!')
13.多维列表
已构造一个多维列表,要求第一个为字符串,第二个元素为一维元组,第三个为二维集合,第四个则为三维字典。将该列表的所有元素遍历打印出来。(字典需要输出键值对)。
列表如下:["str, 12345", ('tunpe', 2) ,{'dict':{'dict': {'dict': 4}}}]
a = ["str, 12345", ('tunpe', 2) ,{'dict':{'dict': {'dict': 4}}}]
for i in range(len(a)):
if i == 0:
print(a[i], end=' ')
elif i == 1:
for j in a[i]:
print(j, end=' ')
elif i == 2:
for k1, v1 in a[i].items():
print(f"key: {k1}, value: {v1}")
for k2, v2 in v1.items():
print(f"key: {k2}, value: {v2}")
for k3, v3 in v2.items():
print(f"key: {k3}, value: {v3}", end=' ')
print()
14.字典序的应用
一直两个同顺序序列,分别为某些人的姓名,十年前的年龄,请将两序列打包为字典,要求使用字典推导式,要求最后得到一个类似如下的字典:
{'name': 'NowAge'},即姓名和现在的年龄。
name = ['zsy', 'wq', 'zz']
age = [100, 200, 300]
info = {k:v + 10 for k, v in zip(name, age)}
for k, v in info.items():
print(f"Name: {k}, NowAge: {v}")