python每日一练之Day3

1.编写一个程序,接受一系列以空格分隔的单词作为输入,在删除所有重复单词并按字母数字排序后打印这些单词。

假设向程序提供以下输入:hello world and practice makes perfect and hello world again
输出:again and hello makes perfect practice world

#方法一
word = input().split()
for i in word:
    if word.count(i)>1:
        word.remove(i)
word.sort()
print(*(word))

#方法二
word=input('请输入单词(空格隔开):').split()
[word.remove(i) for i in word if word.count(i)>1]
word.sort()
print(*(word))

#方法三
word=sorted(list(set(input('请输入单词(空格隔开):').split())))
print(*(word))

# 方法四
str1=input('请输入单词(空格隔开):').split()
li=[]
for i in str1:
    if i not in li:
        li.append(i)
print(' '.join(sorted(li)))

2. 编写一个程序,它接受一系列逗号分隔的 4 位二进制数作为输入,

然后检查它们是否可以被 5 整除。 可被 5 整除的数字将以逗号分隔的顺序打印。输入:0100,0011,1010,1001 输出:1010

#方法一
num=input('请输入四位二进制数(以,隔开):').split(',')
print(','.join([i for i in num if int(i,2)%5==0 ]))

#方法二
def zh(x):
    return int(x,2)%5==0
num=input('请输入四位二进制数(逗号隔开):').split(',')
print(*(list(filter(zh,num))))

#方法三
num=input('请输入四位二进制数(逗号隔开):').split(',')
print(*(list(filter(lambda x:int(x,2)%5==0,num))))

#方法四
print(*(i for i in input('请输入四位二进制数(逗号隔开):').split(',') if int(i,2)%5==0))

3.3.编写一个程序,找出 1000 到 3000(均包括在内)之间的所有数字,使得该数字的每一位都是偶数。

获得的数字应以逗号分隔的顺序打印在一行上。

#方法一
li=[]
for i in range(1000,3001):
    g=i%1000
    s=i//10%100
    b=i//100%10
    q=i//1000
    if g%2==0 and s%2==0 and b%2==0 and q%2==0:
        li.append(i)
print(*(li))

# 方法二
li=[]
for i in range(10,30):
    f = 1
    for j in str(i):
        if ord(j)%2!=0:
            f=0
    if f==1:
        li.append(i)
print(*(li))
print(ord('9'))

#方法三
def zh(x):
    return all(ord(i)%2==0 for i in x)
li=[str(i) for i in range(1000,3001)]
print(*(list(filter(zh,li))))

#方法四
print(*(i for i in range(1000,3001) if all(map(lambda x:int(x)%2==0,str(i)))))

#方法五
from functools import reduce
def isD(boo,x):
    return int(x)%2==0 and boo
print(*(i for i in range(1000,3001) if reduce(isD,str(i),True)),sep=',')



  • 当全世界都说你是疯子的时候,你就离成功不远了
  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值