python实验1

1、编写程序,生成包含50个随机整数的列表,然后删除其中所有的奇数:

import random
a=[]
for i in range(0,50):
   a.append(random.randint(1,100))
print("len=",end=' ')
print(len(a))
print(a)
cnt=0
for i in a[:]:
    if i%2==1:
        a.remove(i)
    else:
        cnt=cnt+1
print(cnt)
print(a)

 


2、编写程序,用户从键盘输入小于1000的整数,对其进行质因数分解,例如 10=2*5,60=2*2*3*5

法一:

import math
n=input("请输入一个整数:")
t=n
n=int(n)
a=[]
for i in range(2,int(math.sqrt(n)) ):
    while n%i==0:
        a.append(i)
        n=n//i
if n!=1:
    a.append(i)
L=len(a)
print(t,'=',end='')
for i in range(0,L):
    print(a[i],end='')
    if i!=L-1:
        print('*',end='')

法二:CJY学长的:

import math
n=input("请输入一个整数:")
t=n
n=int(n)
a=[]
for i in range(2,int(math.sqrt(n)) ):
    while n%i==0:
        a.append(str(i))
        n=n//i
if n!=1:
    a.append(str(n))
print(t,'=',end='')
print("*".join(a))



3、编写程序,输出所有由1、2、3、4这4个数字组成的素数,且每个素数中每个数字只能用一次。

import math
import itertools
def judge(x):
    if(x==1):
        return False
    for i in range(2,int(math.sqrt(x))+1):
        if x%i==0:
            return False
    return True

a=[1,2,3,4]
c=[]
for i in range(1,5):
    b=list(itertools.combinations(a,i))
    for j in b:
        t=0
        for k in j :
            t=t*10+k
        if judge(t):
            c.append(t)
print(c)

 


4、编写程序,至少用两种方法求100以内所有奇数的和。

最简单的方法:(for循环历遍即可):

x=0
for i in range (1,101,2):
    x=x+i
print(x)

利用List的求和:

x=0
a=[]
for i in range (1,101):
    if i&1:
        a.append(i)
x=sum(a)
print(x)

直接求得:

x=sum(range(1,101,2))
print(x)

5、编写程序,生成含有30个随机整数的列表,然后对其偶数下标的元素降序排序,奇数下标的元素不变。

import random
a=[]
b=[]
c=[]
for i in range(0,30):
    t=random.randint(1,100)
    c.append(t)
    if i&1:
        a.append(t)
    else:
        b.append(t)
a.sort(reverse=True)
print(c)
for i in range(0,30):
    if i&1:
        print(a[i//2],end=' ')
    else :
        print(b[i//2],end=' ')
print(a)

猜你喜欢

转载自blog.csdn.net/Z_sea/article/details/82784990