python实验二 组合数据类型的应用

1、输入一个字符串判断是否是回文字符串(利用列表切片和不用切片分别完成)。

#切片
x = input("请输入字符串:")
s = x[::-1]
if s == x:
    print("这是回文字符串")
else:
    print("这不是回文字符串")

#非切片
s = input('请输入字符串:')
a = len(s)
i = 0
count = 1
while i <= (a/2):
    if s[i] == s[a-i-1]:
        count = 1
        i += 1
    else:
        count = 0
        break
if count == 1:
    print('这是回文字符串')
else:
    print('这不是回文字符串')

运行截图:

 

2、随机生成 [0,10]范围的整数,分别组成集合A和集合B,输出A和B的内容、长度、最大值、最小值以及它们的并集、交集和差集。

import random
def fun():
    List = []
    for j in range(5):
        x = random.randint(0,10)
        List.append(x)
    return set(List)
A = fun()
B = fun()
print(str.format("集合的内容,长度,最大值,最小值分别为:\n{0} {1} {2} {3}",A,len(A),max(A),min(A)))
print(str.format("{0} {1} {2} {3}",B,len(B),max(B),min(B)))
print(str.format("A和B的并集,交集和差集分别为:\n{0} {1} {2} ",A|B,A&B,A-B))

运行截图:

 

3、取出"My house is full of toys"中每个单词的首字母并存储到列表对象中,要求给出两个版本的实现:不使用列表推导式和使用列表推导式。

s.split() #将字符串s按照空格分隔,返回分隔后的字符串列表

[ i for I in range(10) if I%2==0]

#使用列表推导式
A = "My house is full of toys"
B = list()
A = A.split()
for i in range(0,len(A)):
    B.append(A[i][0])
print(B)

#不使用列表推到式
A = "My house is full of toys"
B = list()
A = A.split()
for i in range(0,len(A)):
    B.append(A[i][0])
print(B)

运行截图:

 

4、已知,以下食物每100g的卡路里如下:

小米粥 45,粗粮馒头 223,全麦面包 235,瘦猪肉 143,鸡翅 194,培根 181,火腿肠 212。

①建立一个空的字典,把上述键值对依此添加进去。通过循环形式,依次显示所有元素,显示格式如“我吃了二两”+“小米粥”,“增加了”+“45”卡路里。

②设计一个“你想知道哪种食物的卡路里?”系统,系统运行时用户可以输入要查询的食物名称,系统显示该食物对应的热量,如果用户输入了不存在的食物,则系统提示“没有该食物的数据!”

K = {'小米粥': 45, '粗粮馒头': 223, '全麦面包': 235, '瘦猪肉': 143, '鸡翅': 194, '培根': 181, '火腿肠': 212}
A = list(K.keys())
B = list(K.values())
for i in range(0, len(K)):
    print("我吃了二两+" + A[i] + " 增加了+" + str(B[i]) + "卡路里")

temp = input("输入要查找的食物:")
print(K.get(temp, "找不到此食物"))
temp2 = input("输入要查找的食物:")
print(K.get(temp2, "找不到此食物"))

运行截图:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值