Python_lab2_21sp_XDU

近期要期中考试了,没有在写,来发一篇上机相关
Python 第二次上机作业 常用的数据结构(列表、元组、字典、集合)

1.创建一个列表,练习列表的各种操作,包括创建列表、增加元素、删除元素、修改元素、列表切片、列表推导式等。

直接使用List api的函数即可,
list = [‘apple’,‘spam’,2.0, [10,20], False]

print(list)

list.append('glayin')
print(list)

list.remove('apple')
print(list)

list[1] = 'slack'
print(list)

a = list[:2]
print(a)

b = [-1, -4, 6, -7.5, -2.3, 9, -11]

print([i for i in b if i > 0])

2. 输入包含n个数的数组a和数x,判断a中是否有两个元素之和等于x,输出‘yes’或者‘no’。

双循环遍历嵌套遍历整个数组,每一次遍历中的状态就是一个组合,外层遍历每轮从第i个开始,内层从i+1到数组末尾,这样就遍历了所有的组合, 用py方式:

for I in range(len(nums)):
	for j in range(i+1, len(nums))
	if(nums[i] + nums[j] == x):
                return "yes"
   return "no"

3. 用字典建立一个通讯录,向字典中添加和删除通讯人(名字、电话、邮箱、工作单位等),查询某个人的信息,然后输出通讯录中所有人的信息。

以字典为基础建立一个通讯录,向字典中添加通讯人(名字、电话、email、工作单位等)使用append方法和删除通讯人使用pop方法编辑通过获取到新的input在append到原处即可,defaultdict 定义在循环外,只有一个地址,每次循环,地址不变,查询某个人的信息使用if语句

if name in people:
    print(people[name])

4. 用生成器的方式计算任意起止范围内质数的和。质数,又称素数,是大于1的自然数,除了1和它本身外,不能被其他自然数整除。

这里主要的问题是要使用生成器,什么是生成器?
生成器用于创建迭代器,但是使用不同的方法。生成器是简单的函数,它们以一种特殊的方式一次返回一组可迭代的项目。
当开始使用for语句对一组项目进行迭代时,将运行生成器。一旦生成器的功能代码到达“ yield”语句,生成器就将其执行返回给for循环,并从集合中返回一个新值。
所有,编写一个判断一个数是否质数的函数,再编写一个传入一个区间,返回区间中的质数的生成器即可

5. 输入年、月和日三个整数,输出输入的年月日是当年的第几天,并采用不同的格式输出该日期。

方法一:直接调用datetime库
date = datetime.date(year,month,day).timetuple().tm_yday
方法二: 把每月天数存入一个列表。判断当年是否是闰年,如果是则修改二月天数为29,然后遍历列表(1,month),获得前n个月天数之和再加上当月天数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lux Lin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值