【习题之Python篇】习题4

1. 输入一个字符串,内容是个带小数的实数,例如123.45, 输出是两个整数变量x和y,x是整数部分123,y是小数部分45。

s=input("输入带小数的数字:")
s=s.split(".")
print(int(s[0]),"是整数部分,",int(s[1]),"是小数部分")

或者

x,y = [int(i) for i in input("输入带小数的数字:").split(".") ]
print("{}是整数部分,{}是小数部分".format(x,y))

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

小知识:
split() 用于分割的作用
python语言的绝妙之处就在于精简,所以第二种方法相对第一种是好的程序

2. 输入如下论语中的一句话,统计这句话中汉字的个数,标点符号的个数。 “学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?”

s='学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?'
print("标点符号的个数{},汉字个数{}".format(s.count(",")+s.count("?") ,len(s)-s.count(",")-s.count("?")))

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

3. 编写程序,输入一个字符串s,输出其每个字符的ASCII码构成的列表L, 即L中的每个元素是s中每个字符的ASCII码。

s=input("输入字符串:")
l=[]
for i in s:
    l.append(ord(i))
print(l)

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

小知识:
L.append() 插入
ord() 将字符转换成ASCLL码

4. 编写程序,检查两个单词是否是字母易位词。例如 “silent” 和 ”listen”就是两个字母易位词,”apple”和”aplee”就不是字母易位词。

s=sorted(input("输入单词:"))
s1=sorted(input("输入对比单词:"))
if s==s1:
    print("是两个字母易位词")
else:
    print("两个字母不是易位词")

结果:
在这里插入图片描述
小知识:
sorted():排序函数
L.sort():列表的排序方法

5. 编程实现打印输出如下截图所示的杨辉三角形:

在这里插入图片描述

num=input('请输入行数:')
num =int(num)
list1 =[]     #list 用来保存杨辉三角
for n in range(num):
  row =[1]    #保存行
  list1.append(row)
  if n ==0:
    print(row)
    continue
  for m in range(1,n):
    row.append(list1[n - 1][m - 1] + list1[n - 1][m])
  row.append(1)
  print(row)

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

6. 删除列表中出现次数最少的元素。

#s="adfffaaddccccc"
s=input("请输入字符串:")
d={}   #计算出现的次数
a=[]   #存放
for i in s:
    a.append(i)
for i in s:
    d[i]=d.get(i,0)+1
min1=d[s[0]]  #字典中最小的元素,先随便找一个当最小的
for j in d:   #找出待删除最小元素的重复最小元素
    if d[j]<d[s[0]]:
        min1=d[j]
b=[]  #存放字符串中出现最小的的字母
for k in d:
#    print("d[k]",d[k])
    if d[k]==min1:
        for i in range(min1):
          b.append(k)
#        print("b",b)
for i in range(len(b)):
    for j in range(len(a)):
        if b[i]==a[j]:
#            print("b,a",b,a)
            del a[j]
            break
c=''  #存放删除完的字符串
for k in range(len(a)):
    c += a[k]
print("结果为:",c) 

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

7.一个由n(n>1)个数字组成的列表 ls,输出一个列表lt, 其中lt中第i个元素等于ls中除ls[i]之外所有元素的乘积。例如: ls = [1,2,3,4]那么lt = [24, 12, 8, 6], ls = [4, -3, 0, 9, -7]那么lt = [0, 0, 756, 0, 0]

Ls = [1,2,3,4]
s = 1
Lt = []
for i in range(len(Ls)):
    tem = Ls[:]  #循环列表中的所有元素并存入tem中
    tem.pop(i)   #删除第i个元素
    for j in tem:  #将除了第i个元素之外的所有元素统统相乘
        s *= j
    Lt.append(s)
    s = 1
print(Lt)

结果:

在这里插入图片描述

8.编写程序,合并两个有序列表,使得合并后的列表依然有序,要求不可使用sorted函数,也不可使用列表的sort方法。

a = [1, 3, 6, 7, 9]
b = [2, 4, 5, 8, 10]
c=a+b
for i in range(len(c)):
        for j in range(len(c)-i-1):
            if c[j] > c[j + 1]:
                c[j], c[j + 1] = c[j + 1], c[j]
print(c)

结果:
在这里插入图片描述
小知识:
运用冒泡排序的方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

IsQiya

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

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

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

打赏作者

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

抵扣说明:

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

余额充值