㈠ python题
def sumfactor(n):
sum=0
for i in range(1,n):
if n%i==0:
sum+=i
return sum
for i in range(1,1001):
if i==sumfactor(i):
print(i,end=' ')
print()
print()
a=[]
for i in range(1,3001):
if i==sumfactor(sumfactor(i)) and i!=sumfactor(i):
if not((sumfactor(i),i)in a):
a.append((i,sumfactor(i)))
for i in a:
print(i,end=' ')
㈡ 怎么查找python列表中元素的位置
Python中查找list中某个固定元素是常有的事,对于两种不同的查找有两种不同的解决方案,见下。
list自带的方法index可以找出某元素在list中首次出现的位置,用法为:
(2)找数对Python扩展阅读:
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。序列都可以进行的操作包括索引,切片,加,乘,检查成员。
此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型。
㈢ 如何用python在两组数据中找相应匹配的数据
先把两组数据的字符串全部转为小写,然后用列表推导式:
list1 = [i.lower() for i in list1]
list2 = [i.lower() for i in list2]
list3 = [i for i in list1 for j in list2 if i==j]
㈣ 请问求3000以内的亲密数对用Python做
#-*-coding:utf-8-*-
#py3
defcheck(n):
'''
计算各因子之和模块
'''
s=0
foriinrange(1,int(n/2)+1):
ifn%i==0:
s+=i
returns
if__name__=='__main__':
foriinrange(1,3000):
res=check(i)#对1至3000所有数依次求因子和
ifi!=resandcheck(res)==i:#因子和不等于本身,且是亲密数,输出
print(i,res)
㈤ 查找100以内的所有质数的python编程怎么写
质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数,如:2、3、5、7、11、13、17、19。
方法一:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
num=[];
i=2
for i in range(2,100):
j=2
for j in range(2,i):
if(i%j==0):
break
else:
num.append(i)
print(num)
方法二:
import mathdef
func_get_prime(n):
return filter(lambda x: not [x%i for i in range(2, int(math.sqrt(x))+1) if x%i ==0], range(2,n+1))
print func_get_prime(100)
输出结果为:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
希望我的回答对你有帮助!
㈥ Python:关于有序序列元素查找
1 引言
有序序列元素查找是python算法中典型且重要的技能,通过对有序序列元素查找的学习,我们可以更快的解决关于有序序列查找的相关问题,也可以更好的体现出我们的解题思维逻辑能力和提高代码水平。
查找元素。一般地,我们可以用for循环进行遍历,再用if语句进行查找。相对于for循环,二分法更加方便。二分法思想 对于已按照关键字排序的序列,经过一次比较后,可将序列分割成两部分,然后只在有可能包含待查找元素的一部分中继续查找,并根据试探结果继续分割,逐步缩小查找范围,直至找到或找不到为止。
2 问题描述
示例:如何查找有序序列中某一的元素
输入:[1,2,3,4,5,6,……,100] 61 #查找的元素
输出:61
3 算法描述
在这里我们主要使用二分法查找。二分法主要是与给定的一列序数中的中位数进行比较,然后再选取范围进行查找。如在[1,2,3,4,……,100]中查找61。先取1—100之间的中位数50进行比较,因为50比61小,所以排除1—50之间的数,再用51—100之间的中位数75进行比较,因为75大于61‘所以排除75—100的元素。然后反复地用这个方法排除多余的元素,直到剩下需要查找的元素(61)。
4 结语
有序序列中元素的查找有两种方法:一是用for循环进行遍历查找。二是二分法进行查找。对于会执行很多次的查找时采用二分法比较方便。
附件
def my_func(my_list, searched_number): #二分法
start_number_index = 0
end_number_index = len(my_list) - 1
while start_number_index <= end_number_index:
mid_number_index = (start_number_index = end_number_index) // 2
mid_number = my_list[mid_number_index]
if mid_number < searched_number:
start_number_index = mid_number_indexn+ 1
elif mid_number > searched_number:
end_number_index = mid_number_index - 1
else:
return '找到了需要查找的数字%d'% searched_number
my_list = list(range(1,101))
searched_number = 61
print(my_func(my_list, mid_number))# 结果 找到了需要查找的数字 61