a=int(input("输入整数"))for i inrange(2,a):if a==2:print("是素数")elif a%i==0:print("不是素数")breakelif a==i:print("是素数")
1_10 斐波那契数列
n=int(input("请输入斐波那契数列的项数"))
list2=[1,1]deflifibo(n):#列表生成
i=2while i<=n:
list2.append(list2[i-1]+list2[i-2])
i=i+1return list2
defrefibo(n):#递归生成if n<=1:return n
else:return(refibo(n-1)+refibo(n-2))
list1=[]defforfibo(n):#循环生成
a,b=0,1for i inrange(n):
list1.append(b)
a, b = b, a + b
lifibo(n)print(list2)# for i in range(n):# print(refibo(i),end=' ')# forfibo(n)# print(list1)
1-11 韩信点兵。1~1000以内,用3除余2,用5除余3,用7除余2.
for i inrange(1,1001):if i%3==2and i%5==3and i%7==2:print(i)else:continue
1-12 设m=1 2 * 3 * . . . n求m为不太于20000时最大的n。
n=1
i=1while n<=2000:
n=n*i
i +=1print(i)
2
2-2 求1~100之间的所有素数,并统计素数的个数。优先用筛法,
import math
Max=100
mark=[True]*(Max+1)#print(mark)for i inrange(2,math.ceil(math.sqrt(Max))):
j=i
k=j
while j*k<=Max:
mark[j*k]=False
k +=1
sum_1=0for i inrange(2,Max+1):if mark[i]isTrue:if sum_1%10==0:print()print(i,end='\t')
sum_1 +=1print()print(sum_1)
import random
list_1 =[]for i inrange(50):
list_1.append(random.randint(0,100))print('生成的随机整数列表为:\n',list_1)
j=0while j<len(list_1):if list_1[j]%2!=0:del list_1[j]
j+=1print("删除奇数后的列表:\n",list_1)
2-5 假设有一段英文,其中所有的I被误写为i请编写程序改正。
str_1='qwertyuiop'
list_1=list(str_1)print(list_1)for i inrange(len(list_1)):if list_1[i]=='i':
list_1[i]='I'
str_1=map(str,list_1)print("".join(str_1))
2-6 编写函数,接收一个字符串,并返回大写字母个数数字个数,用元组形式返回。
deffind():
num=0
alp=0
s=input("输入字符串")for i in s:if i.isdigit():
num=num+1elif i.isalpha()and i.isupper():
alp=alp+1return alp,num
a,b=find()
c=(a,b)print(c)
2-7编写函数,接收一个高维向量,将其变成一维向量返回。
defHigToLow(a):global one
for i in a:ifisinstance(i,list):return HigToLow(i)else:
one.append(i)return one
one=[]
a=[1,2,[1,2,[1,2]]]print(HigToLow(a))
2-8设计一个字典,以用户输入为键,如果输入存在则输出对应的值,否则输出“键不存在”
d ={'Mikey':'1','Tom':2,'Jerry':3,'Peter':4}
a =input("input the name:")print(d.get(a,"键不存在!"))
3
3-1.编写函数,函数参数为正整数n,返回值为第n个素数。
deffindnum(x):global count
global n
while count!=x:
n+=1if isprime(n):
count+=1return n
defisprime(n):if n==2:returnTruefor i inrange(2,n):if n%i==0:breakelif n==i+1:returnTrue
count=0
n=1
x=int(input("请输入第n项素数"))print(findnum(x))