㈠ 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