快捷搜索: 王者荣耀 脱发

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:jack@mail.com,Tom:Tom@mail.com}
d[Jim]=Jim@sin.com
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

经验分享 程序员 微信小程序 职场和发展