Python基础100题打卡Day3----------------字符串

题目十

编写一个程序,该程序接受空格分隔的单词序列作为输入,并在删除所有重复单词并对它们进行字母数字排序之后打印这些单词。
假设向程序提供了以下输入:
hello world and practice makes perfect and hello world again
输出结果为:
again and hello makes perfect practice world

代码实现

方法一

world = input("请输入语句,以空格间隔").split(' ')
print(world)
for i in world:
    if (world.count(i) > 1):
        world.remove(i)
world.sort()
print(world)

方法二

world = input("请输入语句,以空格间隔").split(' ')
[world.remove(i) for i in world if (world.count(i)>1) ]
world.sort()
print(world)

运行结果

请输入语句,以空格间隔hello world and practice makes perfect and hello world again
['hello', 'world', 'and', 'practice', 'makes', 'perfect', 'and', 'hello', 'world', 'again']
['again', 'and', 'hello', 'makes', 'perfect', 'practice', 'world']

题目十一

编写一个程序,该程序接受以逗号分隔的4位二进制数序列作为输入,然后检查它们是否可被5整除。
可被5除的数字将以逗号分隔的顺序打印。
例如输入:
0100,0011,1010,1001
输出:
1010

代码实现

方法一

def check_num(num):
    i = 0
    if (num % 5 == 0):
        i = 1
    elif (num % 5 !=0 ):
        i = 0
    return i
num_check = input("请输入需要检测的数字,并以‘,’分隔:").split(",")
for i in num_check:
    l = 1
    num_check10 = 0
    for j in i:
        num_check10 += int(j) * l
        l *= 2
    if (check_num(num_check10) == 1):
        print(i)

方法二

def check(x):  # 创建函数检测是否能被5整除
    return int(x, 2) % 5 == 0  # int(x,b)中x为字符串格式,b为进制代码,能够将x进行二进制转换
data = input().split(",")
data = list(
    filter(check, data)
)  # 对 data中的元素进行check函数检测,满足条件则进行输出。其中data要为字符串类型
print(",".join(data))

运行结果

请输入需要检测的数字,并以‘,’分隔:0100,0011,1010,1001
1010

题目十二

编写一个程序,该程序接受以逗号分隔的4位二进制数序列作为输入,然后检查它们是否可被5整除。
可被5除的数字将以逗号分隔的顺序打印。
例如输入:
0100,0011,1010,1001
输出:
1010

代码实现

方法一

num = []
for i in range(1000,3001):
    if (i % 2 == 0):
        num.append(str(i))
print(",".join(num))

方法二

lst = [str(i) for i in range(1000, 3001)]
lst = list(
    filter(lambda i: all(ord(j) % 2 == 0 for j in i), lst)
)  # lambda函数一行编写函数
print(",".join(lst))

运行结果

在这里插入图片描述

题目十三

编写一个程序,接受一个句子,并计算字母和数字的数量。
假设向程序提供了以下输入
hello world! 123
输出结果为:
字母 10
数字 3

代码实现

方法一

word = input("请输入统计语句")
letter, digit = 0, 0
for i in word:
    if ("a" <= i and i <= "z") or ("A" <= i and i <= "Z"):
        letter += 1
    if "0" <= i and i <= "9":
        digit += 1
print("字母 {0}\n数字 {1}".format(letter, digit))

运行结果

请输入统计语句hello world! 123
字母 10
数字 3

总结

以上所有问题大多是与字符串相关的问题。解决方案的主要部分包括字符串释放函数和理解方法,以便以更短的形式编写代码。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值