头歌 实验七 元组和集合

  1. 日期格式转换

任务描述
本关任务:编写一个能转换日期格式的小程序。
输入一个数字的日期格式
2020/1/23
转换为美式格式和英式格式

相关知识
为了完成本关任务,你需要掌握:日期格式

日期格式
英式日期格式:日,月,年
美式日期格式:月,日,年
具体举例如下:
8 March,2004(英式)
March 8,2004(美式)

测试说明
平台会对你编写的代码进行测试:
测试输入:2020/1/29
预期输出:美式格式January 1,2020
英式格式January 1,2020

注意:年份不一定是4位
提示:使用元组保存月份的名称

x=input("输入日期")
#开始
date = {1:'January',2:'February',3:'March',4:'April',5:'May',6:'June',7:'July',8:'August',9:'September',10:'October',11:'November',12:'December'}
k = x.split('/')
m = date.get(int(k[1]))
y = m +' ' + k[2] + ',' +k[0]
z = k[2] +' ' + m +','+k[0]
#结束
print("美式格式"+y)
print("英式格式"+z)

  1. 计算购买饮品金额

任务描述
本关任务:编写一个计算购买饮品金额的小程序。

相关知识
为了完成本关任务,你需要掌握:1.如何对元组的各值循环 2.访问二维元组的值

对元组的各个值循环
for 变量 in 元组:
循环体
变量依次取出元组的各个值,执行循环体

访问二维元组的值
访问元组的i行j列的值
元组[i][j]

编程要求
某奶茶店的各饮品的名称和价格如下所示
在这里插入图片描述
首先显示所有饮品的名称和价格,然后循环输入饮品的序号和数量,直到输入序号为0。系统输出总计的金额。
在这里插入图片描述
注意:序号输出2位长度
要求能循环输入饮品的编号和价格
一旦输入饮品编号0则退出循环(该次不再输入数量)

测试说明
平台会对你编写的代码进行测试:

测试输入:
请选择饮品5
请输入数量1
请选择饮品9
请输入数量2
请选择饮品0

预期输出:
应付46元

cp=(("悠哉悠哉",18),("人间烟火",17),("蔓越阑珊",17),("抹茶葡提",16),("幽兰拿铁",16),("  翠翠  ",13),("浮生半日",15),("筝筝纸鸢",16),("声声乌龙",15),("风栖绿桂",12),("素颜锡兰",13),("烟火易冷",15))
#代码开始
k = 1
c = 0
for i in range(len(cp)):
    if k <10:
        z = ' '+str(k)
    else:
        z = str(k)
    for j in range(len(cp[0])):
        z += str(cp[i][j])
    print(z)
    k += 1
while True:
    a = int(input('请选择饮品'))
    if a == 0:
        break;
    b = int(input('请输入数量'))
    c+=cp[a-1][1]*b
print('应付'+str(c)+'元')
#代码结束
  1. 判断句子是否每个英文字母起码出现一次

任务描述
本关任务:编写一个判断输入的英文句子是否个每个英文字母起码出现一次的小程序。
英文中有一种句子,句子中所有英文每个字母至少出现一次,例如The quick brown fox jumps over the lazy dog.
编写一个程序,用来检查一个英文句子是否是符合这个条件.是则显示True 否则显示False(提示 利用集合)

相关知识
为了完成本关任务,你需要掌握:集合的操作

集合的操作
设置集合为空集合
jh=set()
集合jh增加一个元素x
jh.add(x)
集合元素的个数
len(jh)

编程要求
根据提示,在右侧编辑器补充代码,判断句是否符合要求。

测试说明
平台会对你编写的代码进行测试:

测试输入:测试输入:The quick brown fox jumps over the lazy dog.
预期输出:
True

测试输入:Yor are welcome.
预期输出:
False

注意:输入的字符串里面可能有数字字符、标点符号、大小写英文字母等。

x=input("")
#代码开始
y = set(x)
z = set('qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM')
a =y&z
if len(a) >=24:
    print(True)
else:
    print(False)
#代码结束
    
        

  1. 集合的运算

任务描述
本关任务:
商场举办双节答谢活动,有两项活动可以参加
报名参加活动1的会员编号放在集合lb1中
报名参加活动2的会员编号放在集合lb2中
将同时参加两项活动的会员编号,只参加活动1的会员编号,只参加活动2的会员编号分别显示出来

相关知识
为了完成本关任务,你需要掌握:集合的运算

集合的运算
差 S –T 返回一个新集合,包括在集合S中但不在集合T中的元素
交 S & T 返回一个新集合,包括同时在集合S和T中的元素
并 S|T 返回一个新集合,包括集合S和T中所有元素
补 S^T 返回一个新集合,包括集合S和T中元素,但不包括同时在其中的元素

测试说明
平台会对你编写的代码进行测试:

测试输入:1,3,4,5,6,7,9
2,4,5,6,9,12

预期输出:
两项活动都参加 {9, 4, 5, 6}
只参加活动1 {1, 3, 7}
只参加活动2 {2, 12}

hd1=set()
hd2=set()
gh=input("")
lb=gh.split(',')
for x in lb:
    hd1.add(eval(x))
gh=input("")
lb=gh.split(',')
for x in lb:
    hd2.add(eval(x))
#代码开始
hd3 = hd1&hd2
hd4 = hd1 - hd2
hd5 = hd2 - hd1
#代码结束
print("两项活动都参加",hd3)
print("只参加活动1",hd4)
print("只参加活动2",hd5)

    

  • 24
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值