python练习笔记(二)

python练习笔记(二)

Question 11

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

解法一

def check(x):                # 如果能被5整除,检查函数返回真
    return int(x,2)%5 == 0    # int(x,b)将x作为字符串,将b作为转换的进制数。
                             # 它将被转换为小数
data = input().split(',')
  # 在filter(func,object)函数中,如果通过'check'函数发现元素为真,则从'data'中挑选。
data = list(filter(check,data)) 
print(",".join(data))

解法二

data = input().split(',')
data = list(filter(lambda i:int(i,2)%5==0,data))   
print(",".join(data))

解法三

value=[]
items=[x for x in input().split(',')]
for p in items:
    intp = int(p,2)
    if not intp %5:    #如果能整除,结果为0,not之后为真
        value.append(p)
print(','.join(value))

Question 12

写一个程序,它将找到所有在1000和3000之间的数字(包括这两个数字),使数字的每个数字都是偶数。
得到的数字应以逗号分隔的顺序打印在一行中。
解法一

values = []
for i in range(1000, 3001):
    s = str(i)
    if (int(s[0])%2==0) and (int(s[1])%2==0) and (int(s[2])%2==0) and (int(s[3])%2==0):
        values.append(s)
print (",".join(values))

解法二

lst = []
for i in range(1000,3001):
    flag = 1
    for j in str(i):          # 每个整数i都被转换为字符串
        if ord(j)%2 != 0:     # ord返回ASCII值,j是i的每个数字。
            flag = 0          #  如果发现任何奇数数字,标志将变为零
    if flag == 1:
        lst.append(str(i))    # i作为字符串存储在列表中
print(",".join(lst))  

解法三

def check(element):
    return all(ord(i)%2 == 0 for i in element)  # 如果所有数字i在元素中是偶数,则返回真。	
lst = [str(i) for i in range(1000,3001)]        #  创建字符串数据类型的所有给定数字的列表

lst = list(filter(check,lst))                   # 如果检查条件失败,过滤器将元素从列表中移除
print(",".join(lst))

解法四

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))

Question 13

编写一个接受句子并计算字母和数字数量的程序。
假设将以下输入提供给程序:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值