1.用格雷格里公式求pi的近似值,当某一项的绝对值小于10的-6次方时停止 pi/4 = 1-1/3+1/5-1/7+…+(-1)**(n+1)/(2*n-1)
t=1 #存放符号
i=1 #控制分母
j=abs(t/i) #控制循序
num=0 #计算求和
while j>=0.000001:
j=abs(t/i)
num+=t/i
i+=2
t*=-1
print("pi=",num*4)
结果:
2.将一个任意位数的正整数倒序输出,例如:输入12345,输出54321
num=input("请输入一组数:")
for i in range(len(num)-1,-1,-1):
print(num[i],end="")
结果:
3.输入两个三位数,计算并输出百位数字相加,十位数字相减,个位数字相乘的结果。(请考虑至少两种实现方案)
num1=input("请输入一个三位数:")
num2=input("请输入一个三位数:")
for i in range(3):
if i==0: #位于百位时
num=int(num1[i])+int(num2[i])
print("{},{}之和为:{}".format(num1,num2,num))
elif i==1: #位于十位时
num=int(num1[i])-int(num2[i])
print("{},{}之差为:{}".format(num1,num2,num))
elif i==2: #位于个位时
num=int(num1[i])*int(num2[i])
print("{},{}之积为:{}".format(num1,num2,num))
结果:
4.统计任意字符串中26个英文字母(不区分大小写)分别出现的次数
s=input("输入一个字符串")
L = [0]*26 #存放26个字符统计结果
# 遍历字符串s:没遍历一个就判断是不是英文字母 是就统计,不是就遍历下一个字符
for c in s:
if ord(c) >=ord("a") and ord(c)<=ord("z"): #符合是小写字符
L[ord(c)-ord("a")] += 1
elif ord(c) >=ord("A") and ord(c)<=ord("Z"): #符合是大写字符
L[ord(c)-ord("A")] += 1
print(L)
结果:
或者
s=input("输入一个字符串")
s=s.split(" ") #分割
l={}
for i in s:
l[i]=l.get(i,0)+1
print(l)
结果:
5.编写程序,删除列表中的重复元素
d=['1','3','3','2','2']
d1=[]
for i in d:
if not i in d1:
d1.append(i)
print(d1)
结果:
6.编写程序,实现冒泡排序算法,待排序的数据元素用列表存放
li=[1,2,5,9,6,4,2,3,5,0]
for i in range(len(li)):
for j in range(len(li)-i-1):
if li[j] > li[j + 1]:
li[j], li[j + 1] = li[j + 1], li[j]
print(li)
结果:
7.编写程序,实现插入排序算法,待排序的数据元素用列表存放
li=[1,2,5,9,6,4,2,3,5,0]
for i in range(len(li)):
k=li[i]
j=i-1
while j>=0:
if li[j]>k:
li[j+1]=li[j]
li[j]=k
j-=1
print(li)
结果:
或者
li=[1,2,5,9,6,4,2,3,5,0]
for i in range(1,len(li)):
for j in range(i,0,-1):
if li[j]< li[j-1] :
li[j], li[j -1] = li[j - 1], li[j]
else:break
print(li)
结果: