第11题

难度:2级

问题:编写一个程序,接收一系列以逗号分隔的4位二进制数作为输入,然后检查它们是否可被5整除,可被5整除的数字将以逗号分隔的顺序打印。

例:0100,0011,1010,1001

那么输出应该是:1010

提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

value = []
print('请输入逗号分隔的4位二进制数:')
items=[x for x in input().split(',')]
for p in items:intp = int(p, 2)# print(intp)if not intp%5:value.append(p)
print (','.join(value))

我的答案:

>>> print(','.join([_ for _ in input('输入一组二制数:').split(',') if int(_,2)%5==0]))
0100,0011,1010,1001
1010
>>>
>>> print(','.join([_ for _ in input('输入一组二制数:').split(',') if int(_,2)%5==0]))
0101,0111,1010,1111
0101,1010,1111
>>> 

第12题

难度:2级

问题:编写一个程序,找到1000到3000之间并且所有位数均为偶数的所有数字,比如2000,2002等;获得的数字都以逗号分隔的顺序,打印在一行上。

提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

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

我的答案:

>>> [i for i in range(1000,3001) if all([int(_)%2==0 for _ in str(i)])]
[2000, 2002, 2004, 2006, 2008, 2020, 2022, 2024, 2026, 2028, 2040, 2042,2044, 2046, 2048, 2060, 2062, 2064, 2066, 2068, 2080, 2082, 2084, 2086,2088, 2200, 2202, 2204, 2206, 2208, 2220, 2222, 2224, 2226, 2228, 2240,2242, 2244, 2246, 2248, 2260, 2262, 2264, 2266, 2268, 2280, 2282, 2284,2286, 2288, 2400, 2402, 2404, 2406, 2408, 2420, 2422, 2424, 2426, 2428,2440, 2442, 2444, 2446, 2448, 2460, 2462, 2464, 2466, 2468, 2480, 2482,2484, 2486, 2488, 2600, 2602, 2604, 2606, 2608, 2620, 2622, 2624, 2626,2628, 2640, 2642, 2644, 2646, 2648, 2660, 2662, 2664, 2666, 2668, 2680,2682, 2684, 2686, 2688, 2800, 2802, 2804, 2806, 2808, 2820, 2822, 2824,2826, 2828, 2840, 2842, 2844, 2846, 2848, 2860, 2862, 2864, 2866, 2868,2880, 2882, 2884, 2886, 2888]
>>> 

第13题

难度:2级

问题:编写一个接受句子并计算字母和数字的程序。

假设程序输入:Hello world! 123

则输出应该是:字母10 数字3

提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

print('请输入:')
s = input()
d={"DIGITS":0, "LETTERS":0}
for c in s:if c.isdigit():d["DIGITS"]+=1elif c.isalpha():d["LETTERS"]+=1else:pass
print ("字母", d["LETTERS"])
print ("数字", d["DIGITS"])

我的答案:

>>> s='Hello world! 123'
>>> sum(1 for _ in s if _.isalpha())
10
>>> sum(1 for _ in s if _.isnumeric())
3
>>> # 输入输出格式,略

第14题

难度:2级

问题:编写一个接收句子的程序,并计算大写字母和小写字母的数量。

假设为程序提供了以下输入:Hello world!

则输出应该是:UPPER CASE 1;LOWER CASE 9

提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

print('请输入:')
s = input()
d={"UPPER CASE":0, "LOWER CASE":0}
for c in s:if c.isupper():d["UPPER CASE"]+=1elif c.islower():d["LOWER CASE"]+=1else:pass
print ("UPPER CASE", d["UPPER CASE"])
print ("LOWER CASE", d["LOWER CASE"])

我的答案:

>>> s='Hello world!'
>>> sum(1 for _ in s if _.isupper())
1
>>> sum(1 for _ in s if _.islower())
9
>>> # 输入输出格式,略

第15题

难度:2级

问题:编写一个程序,计算a + aa + aaa + aaaa的值,给定的数字作为a的值。

假设为程序提供了以下输入:9;输出应该是:11106

提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

print('请输入一个数字:')
a = input()
n1 = int( "%s" % a )
n2 = int( "%s%s" % (a,a) )
n3 = int( "%s%s%s" % (a,a,a) )
n4 = int( "%s%s%s%s" % (a,a,a,a) )
print (n1+n2+n3+n4)

我的答案:

>>> eval('a+aa+aaa+aaaa'.replace('a',input('请输入一位数字:')))
请输入一位数字:9
11106
>>> 

第16题

难度:2级

问题:使用列表推导输出列表中的每个奇数,该列表由一系列逗号分隔的数字输入。

假设程序输入:1,2,3,4,5,6,7,8,9

输出应该是:1,3,5,7,9

print("输入:")
values = input()
numbers = [x for x in values.split(",") if int(x)%2!=0]
print (",".join(numbers))

略!

第17题

难度:2级

问题编写一个程序,根据控制台输入的事务日志计算银行帐户的净金额。事务日志格式如下所示:

D 100 W 200

D表示存款,而W表示提款。

假设向程序依次输入:D 300;D 300;W 200;D 100;

则输出应该为:500

提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

netAmount = 0
while True:print("请输入:")s = input()if not s:breakvalues = s.split(" ")operation = values[0]amount = int(values[1])if operation=="D":netAmount+=amountelif operation=="W":netAmount-=amountelse:pass
print (netAmount)

略!

第18题

难度:3级

问题:网站要求用户输入用户名和密码进行注册。编写程序以检查用户输入的密码有效性。

以下是检查密码的标准:

1 [a-z]之间至少有1个字母

2 [0-9]之间至少有1个数字

3 [A-Z]之间至少有一个字母

4 [$#@]中至少有1个字符

5 最短交易密码长度:6

6 交易密码的最大长度:12

您的程序接收一系列逗号分隔的密码,并将根据上述标准进行检查,将打印符合条件的密码,每个密码用逗号分隔。

例:如果以下密码作为程序的输入:ABd1234@1,a F1#,2w3E*,2We3345

则程序的输出应该是:ABd1234@1

import re
value = []
print("请输入:")
items=[x for x in input().split(',')]
for p in items:if len(p)<6 or len(p)>12:continueelse:passif not re.search("[a-z]",p):continueelif not re.search("[0-9]",p):continueelif not re.search("[A-Z]",p):continueelif not re.search("[$#@]",p):continueelif re.search("\s",p):continueelse:passvalue.append(p)
print (",".join(value))

我的答案:

>>> import re
>>> pat=['[a-z]','[0-9]','[A-Z]','[$#@]']
>>> password=['ABd1234@1','a F1#','2w3E*','2We3345']
>>> [s for s in password if 6<=len(s)<=12 and all([re.findall(p,s) for p in pat])]
['ABd1234@1']
>>> # 输入输出格式 略

第19题

难度:3级

问题:您需要编写一个程序,按升序对(名称,年龄,高度)元组进行排序,其中name是字符串,age和height是数字, 元组由控制台输入。

排序标准是:

1:根据名称排序;

2:然后根据年龄排序;

3:然后按分数排序。

优先级是name > age > 得分。

如果给出以下元组作为程序的输入:Tom,19,80;John,20,90;Jony,17,91;Jony,17,93;Json,21,85

然后,程序的输出应该是:[('John','20','90'),('Jony','17','91'),('Jony','17','93'),('Json','21 ','85'),('Tom','19','80')]

提示:使用itemgetter来启用多个排序键。

from operator import itemgetter, attrgetter
l = []
print("请输入:")
while True:s = input()if not s:breakl.append(tuple(s.split(",")))
print (sorted(l, key=itemgetter(0,1,2)))

我的答案:

>>> s='Tom,19,80;John,20,90;Jony,17,91;Jony,17,93;Json,21,85'
>>> t=[tuple(t.split(',')) for t in s.split(';')]
>>> t
[('Tom', '19', '80'), ('John', '20', '90'), ('Jony', '17', '91'), ('Jony', '17', '93'), ('Json', '21', '85')]
>>> t=[(i[0],int(i[1]),int(i[2])) for i in t]
>>> t
[('Tom', 19, 80), ('John', 20, 90), ('Jony', 17, 91), ('Jony', 17, 93), ('Json', 21, 85)]
>>> sorted(t,key=lambda x:(x[0],x[1],x[2]))
[('John', 20, 90), ('Jony', 17, 91), ('Jony', 17, 93), ('Json', 21, 85), ('Tom', 19, 80)]
>>>
>>> # 合并成一行:
>>> sorted([(i[0],int(i[1]),int(i[2])) for i in [tuple(t.split(',')) for t in s.split(';')]],key=lambda x:(x[0],x[1],x[2]))
[('John', 20, 90), ('Jony', 17, 91), ('Jony', 17, 93), ('Json', 21, 85), ('Tom', 19, 80)]
>>> 

第20题

难度:3级

问题:使用生成器定义一个类,该生成器可以在给定范围0和n之间迭代可被7整除的数字。

提示:考虑使用yield。

def putNumbers(n):i = 0while i<n:j=ii=i+1if j%7==0:yield j
for i in putNumbers(100):print (i)

略!

Python​ 重解零基础100题(2)相关推荐

  1. [python opencv 计算机视觉零基础到实战] 四、了解色彩空间及其详解

    一.学习目标 了解什么是色彩空间 了解opencv中色彩空间的转换 目录 [python opencv 计算机视觉零基础到实战] 一.opencv的helloworld [[python opencv ...

  2. python快速编程入门课后程序题答案-Python编程从零基础到项目实战 完整PPT+习题答案...

    Python编程从零基础到项目实战是一本介绍Python相关知识的Python基础教程,内容涉及算法.Python数据分析.图形处理.Web开发.科学计算.项目管理.人工智能.Python爬虫等.其中 ...

  3. [转载] Python Web开发—进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程

    参考链接: 在Python中创建代理Web服务器 2 Python Web开发-进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程 [课程简介] 这是一门Python We ...

  4. 零基础学python 视频_全网最全Python视频教程真正零基础学习Python视频教程 490集...

    Python Web开发-进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程 [课程简介] 这是一门Python Web开发进阶课程,手把手教你用Python开发完整的商业 ...

  5. 《算法零基础100讲》(第30讲) 概率与统计

    文章目录 零.写在前面 一.概念定义 二.题目描述 三.算法详解 四.源码剖析 五.推荐专栏 六.习题练习 零.写在前面   这是<算法零基础100讲> 专栏打卡学习的第 30 天了.如果 ...

  6. 《算法零基础100讲》(第42讲) 位运算 (位与) 入门

    文章目录 零.写在前面 一.概念定义 1.位与的定义 2.位与运算符的简单应用 1)奇偶性判定 2)取末五位 3)消除末尾五位 4)2的幂判定 二.题目描述 三.算法详解 四.源码剖析 五.推荐专栏 ...

  7. 《算法零基础100讲》(第20讲) 进制转换(二) - 进阶

    文章目录 零.写在前面 一.概念定义 二.题目描述 三.算法详解 四.源码剖析 五.推荐专栏 六.习题练习 零.写在前面   这是<算法零基础100讲> 专栏打卡学习的第 20 天了.如果 ...

  8. 《算法零基础100讲》(第2讲) 数列

    文章目录 零.写在前面 一.概念定义 1.等差数列 2.等比数列 3.斐波那契数列 二.题目描述 三.算法详解 四.源码剖析 五.推荐专栏 六.习题练习 零.写在前面   这是<算法零基础100 ...

  9. 《算法零基础100讲》(第53讲) 区间问题(二) 区间的并集和交集

    文章目录 零.写在前面 一.概念定义 1.区间的相交判定 2.区间的交集 3.区间的并集 二.题目描述 三.算法详解 四.源码剖析 五.推荐专栏 六.习题练习 零.写在前面   这是<算法零基础 ...

最新文章

  1. 荣耀的鸿蒙系统是什么样的,核心还是备胎?华为鸿蒙系统究竟怎么样了?
  2. 阿里移动|《蚂蚁金服移动端高可用技术实践》
  3. php临时文件夹,php-fpm临时文件路径问题【Sytemd PrivateTmp】
  4. Spire.XLS试用手记
  5. ZOJ -3203 三分+数学
  6. 引号吃掉了我的数据~~~
  7. rfid 标签内存_RFID有源与无源的区别与联系
  8. java连接hive代码_Hive:用Java代码通过JDBC连接Hiveserver
  9. Linux下双网卡绑定bond0
  10. android 内核裁剪概述,Android内核的编译与裁剪
  11. Cocos2d-x属性变化动作
  12. Three.js – Building a Cube with different mater...
  13. GCD and LCM HDU 4497 数论
  14. Windows查看快捷键占用情况
  15. 自己动手来做一寸或两寸照片(使用工具)
  16. 短视频素材:17个视频网站,涨粉必上热门
  17. opencv答题卡识别
  18. HFI脉振方波高频注入代码 增强滑膜esmo代码 配套有文档
  19. javascript检测浏览器是否需要升级版本和提示
  20. R语言学习 文本处理

热门文章

  1. Linux的markdown笔记软件,Markdown工具满天飞,哪一款适合用印象笔记的你?
  2. 混合硬盘计算机,什么是混合硬盘 什么是hhd硬盘?
  3. 无人机飞控平台ArduPilot源码入门教程 — 简介
  4. 最好听的男孩名字及1000个好听的女孩的名字
  5. 输入框限制不允许输入中文
  6. 2021-05-11 MongoDB面试题 MySQL与MongoDB之间最基本的差别是什么
  7. DNS工作原理及其过程
  8. 不同平方的电线都能带动哪些家用电器
  9. 无法打开登录所请求的数据库 。登录失败。用户*登录失败。解决办法
  10. mysql 5.7 lbs_使用mysql来实现lbs(地理位置服务)功能