【习题之Python篇】习题3

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)

结果:
在这里插入图片描述

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IsQiya

很庆幸我的文章对您有帮助

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值