python列表與元組、字典與集合的應用上機報告

一、實驗目的和要求

目的:

(1)掌握累加求和問題的算法。
(2)掌握根據整數的一些性質求解數字問題的算法。
(3)掌握求解一元方程的迭代算法。
(4)掌握序列的通用的操作方法。
(5)掌握列表的專用操作方法。
(6)理解元組與列表的區別。

二、 實驗數據記錄、處理及結果分析

① 寫出程序的運行結果。
在這裏插入圖片描述
在這裏插入圖片描述
② 篩選法求[2,n]範圍內全部素數的基本思路是:在2~n中劃去2的倍數(不包括2),再劃去3的倍數(不包括3),由於4已被劃去,再找5的倍數,……,直到劃去不超過n的倍數,剩下的數都是素數。下面是用篩選法求[2,n]範圍內的全部素數的程序,請補充程序。

from math import *
n=int(input("請輸入n:"))
m=int(sqrt(n))
p=[i for i in range(n+1)]
for i in range(2,m+1):
    if p[i]:
        for j in range(2*i,n+1,):           	#去掉i的倍數
            p[j]=0
for i in range(2,n+1):                     	#輸出全部素數
    if:
        print(p[i])

在這裏插入圖片描述
補充程序爲:①i,②p[i]

③ 生成包含20個隨機整數的元組,將前10個數按升序排列,後10個數按降序排列。
在這裏插入圖片描述
④ 寫出程序的運行結果。

d={'Jack':'[email protected]','Tom':'[email protected]'}
d['Jim']='[email protected]'
del d['Tom']
s=list(d.keys())
s=sorted(s)
print(s)

在這裏插入圖片描述
⑤ 寫出程序的運行結果。

numbers={}
numbers[(1,2,3)]=1
numbers[(2,1)]=2
numbers[(1,2)]=3
sum=0
for k in numbers:
    sum+=numbers[k]
print(len(numbers),sum,numbers)

在這裏插入圖片描述
⑥ 寫出程序的運行結果。

a=set('ababcdabca')
x={x for x in a if x not in 'ab'}
print(a-x)
print(a|x)
print(a^x)
print(a&x)

在這裏插入圖片描述
⑦ 從鍵盤輸入整數x,判斷它是否集合a,b,c的元素,若是分別輸出1,2,3,若都不是輸出4,要求集合a從鍵盤輸入。請補充程序。

x=int(input())
a=for i in range(5):
    a.(int(input()))
b={12,43,56,2}
c={3,2,67}
if x in a:
    y=1
elif x in b:
    y=2
elif x in c:
    y=3
else:
    y=4
print('y=',y)

在這裏插入圖片描述
⑧ 寫出下列程序的運行結果。

def foo(num):
    for j in range(2,num//2+1):
        if num%j==0:
            return False
        else:
            return True
def main():
    n,c=8,0
    for i in range(2,n+1):
        if foo(i):
            c+=i
    print(c)
if __name__=='__main__':
    main()

在這裏插入圖片描述
⑨ 寫出下列程序的運行結果。

def foo(list,num):
    if num==1:
        list.append(0)
    elif num==2:
        foo(list,1)
        list.append(1)
    elif num>2:
        foo(list,num-1)
        list.append(list[-1]+list[-2])
mylist=[]
foo(mylist,10)
print(mylist)

在這裏插入圖片描述

三、討論、心得

第③題報錯:
在這裏插入圖片描述
最初認爲是randint屬於math函數,運行之後報錯:
在這裏插入圖片描述
在這裏插入圖片描述
最後查找資料知道:python生成完全隨機的整數,用numpy中的random.randint

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章