这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战
题目1:
有列表['royal',20,[2000,3,18]],分别取出列表中的名字,年龄,出生的年,月,日赋值给不同的变量
l = ['royal',20,[2000,3,18]]
name = l[0]
age = l[1]
year = l[2][0]
month = l[2][1]
day = l[2][2]
题目2:
用列表的insert与pop方法模拟队列
队列:FIFO,先进先出
l = []
# 入队
l.append('one')
l.append('two')
l.append('three')
print(l)
# 出队
l.pop(0)
l.pop(0)
l.pop(0)
题目3:
用列表的insert与pop方法模拟堆栈
堆栈:LIFO,后进先出
l=[]
# 入栈操作
l.append('first')
l.append('second')
l.append('third')
print(l)
# 出队操作
print(l.pop())
print(l.pop())
print(l.pop())
题目4:
简单购物车,要求如下:
实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数以三元组形式加入购物列表,如果输入为空或其他非法输入则要求用户重新输入
msg_dic={
'apple':10,
'tesla':100000,
'mac':3000,
'lenovo':30000,
'chicken':10,
}
代码:
god_list = []
flag = True
while flag:
god_name = input('请输入商品名:')
god_price = input('请输入价格:')
god_num = input('请输入购买个数:')
if god_price.isdigit() and god_num.isdigit():
flag = False
god_price = int(god_price)
god_num = int(god_num)
god = (god_name,god_price,god_num)
god_list.append(god)
print(shop_list)
else:
print("您输入有误,请重新输入")
解题思路:
1.首先我们还是先分析一下变量,先设置一个列表,shop_list作为购物列表,用来存储用户输入的商品信息。这里我们设置用户输入的商品名为god_name,单价为god_price,购买个数为god_num。
god_list = []
god_name = input('请输入商品名:')
god_price = input('请输入价格:')
god_num = input('请输入购买个数:')
2.紧接着我们需要判断价格和个数需要为纯数字的字符串,所以我们加个条件判断,如果为纯数字字符串则转换为int类型。
if god_price.isdigit() and god_num.isdigit():
god_price = int(god_price)
god_num = int(god_num)
3.然后放到一个元组中,再将元组放到商品列表中,最后输出出来
if god_price.isdigit() and god_num.isdigit():
god_price = int(god_price)
god_num = int(god_num)
god = (god_name,god_price,god_num)
god_list.append(god)
print(god_list)
4.但是如果用户输入的价格和个数不是纯数字字符串就要重新输入
else:
print('您的输入有误,请重新输入')
5.用户输入错误与否是未知的,所以需要根据条件判断是否重复执行,所以我们套一层while循环来判断,我们设置一个变量flag,默认为True,即默认进入循环,如果用户输入无误则改变flag为False结束循环,反之不改变flag。
god_list = []
flag = True
while flag:
god_name = input('请输入商品名:')
god_price = input('请输入价格:')
god_num = input('请输入购买个数:')
if god_price.isdigit() and god_num.isdigit():
flag = False
god_price = int(god_price)
god_num = int(god_num)
god = (god_name,god_price,god_num)
god_list.append(god)
print(god_list)
else:
print('您的输入有误,请重新输入')
题目5:
有如下值集合 [11,22,33,44,55,66,77,88,99],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中
l = [11,22,33,44,55,66,77,88,99]
d = {}
k2 = []
for v in l:
if v > 66:
d['k1'] = v
else:
k2.append(v)
d['k2'] = k2
print(d)
解题思路:
1.首先我们需要一个列表包含这些数字,并且要创造一个空字典,再创造一个空列表用来存放第二个key的值
l = [11,22,33,44,55,66,77,88,99]
d = {}
k2 = []
2.然后将l列表中的值用for循环迭代出来
for v in l:
3.接着判断这个v是否大于66,如果大于66保存到k1中,小于66则添加到k2列表中,然后将k2列表存放到字典k2键中
if v > 66:
d['k1'] = v
else:
k2.append(v)
d['k2'] = k2
4.最后输出字典即可
l = [11,22,33,44,55,66,77,88,99]
d = {}
k2 = []
for v in l:
if v > 66:
d['k1'] = v
else:
k2.append(v)
d['k2'] = k2
print(d)
题目6:
统计s='hello world royal say hello world world'中每个单词的个数
s='hello world r0ya1 say hello world world'
hello_count = s.count('hello')
world_count = s.count('world')
r0ya1_count = s.count('r0ya1')
say_count = s.count('say')
print('''hello:{hello_count}\n======
world:{world_count}\n======
r0ya1:{r0ya1_count}\n======
say:{say_count}\n======
'''.format(hello_count = hello_count,world_count = world_count , r0ya1_count = r0ya1_count , say_count = say_count))
解题思路:
1.这题比较简单,首先直接用字符串函数count统计每个单词的数量,然后传给相应的变量
s='hello world r0ya1 say hello world world'
hello_count = s.count('hello')
world_count = s.count('world')
r0ya1_count = s.count('r0ya1')
say_count = s.count('say')
2.然后格式化输出一样即可
print('''hello:{hello_count}\n======
world:{world_count}\n======
r0ya1:{r0ya1_count}\n======
say:{say_count}\n======
'''.format(hello_count = hello_count,world_count = world_count , r0ya1_count = r0ya1_count , say_count = say_count))
\