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)