python 练习题_Python随笔26:Python基础编程练习题17~18

注:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性。

abe8665f8fb0fcbbc082ae0c2e889579.png

Python编程练习

Python基础练习题17

指定一个列表,列表里含有唯一一个只出现过一次的数字。写程序找出这个“独一无二”的数字。

解答:找出“唯一一个只出现过一次的数字”,就意味着列表中的其它数字都必定是重复的。这就涉及到去重的问题。

去重自然要想到集合,毕竟互异性是集合的两大特性之一(另一大特性当然是无序性)。

列表变成集合之后,所有重复的数字将不再有重复,而只剩下一个了,每个数字无论重复的还是“独一无二”的,都会只剩下一个。这时再将用集合中的元素和原列表中的元素一一比较,并在原列表中剔除集合中的元素,那么原列表经过剔除后剩下的必然是以前有重复的数字,而唯一被剔除的就是那个“独一无二”的数字。

接着把剔除后的列表再次转换为集合。这个集合和最开始的集合之间的区别就是,最开始的集合相比它多了一个元素:那个独一无二的数字。事情到这里就解决了。

l = [1, 3, 4, 3, 3, 5, 2, 4, 2, 5, 2]S = set(l)  # l中的元素全部去重后形成一个集合S。print(S)# l去重后,每个元素再删除1次,则原来唯一的元素会被删除,且原来有重复的元素至少还会有1个留在新的l内。for i in S:      l.remove(i)  S1 = set(l)  # S1为原先l中有重复的数字的集合。for i in S:  # S为l中的数字全部去重后形成的集合。    if i not in S1:      # 在S中但不在S1中的数字必然为l中没有重复的数字。        print(i)<<
Python基础练习题18

p是一个质数(素数),p+10和p+14也都是质数,p < 1000,求p的值。

# 设计一个判断是否质数的函数,是质数返回True,否则返回False。def isPrime(n):    if type(n) != int or n <= 1:  # 当n不是int型,或者n<=1时均不是素数。        return False    for i in range(2, n):        if n % i == 0:            return False        return Truefor p in range(2, 1000):    if isPrime(p) and isPrime(p+10) and isPrime(p+14):        print(p)<<<3

To be continued.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值