提示:
代码会有格式上的小错误!其他没问题
问题11
2级
问题:
编写一个程序,该程序接受以逗号分隔的4位二进制数字序列作为输入,然后检查它们是否可被5整除。 被5整除的数字将以逗号分隔的顺序打印。
例子:
0100,0011,1010,1001
然后输出应为:
1010
注意:假设数据是通过控制台输入的。
提示:
如果将输入数据提供给问题,则应假定它是控制台输入。
解决方案:
value = []
items=[x for x in raw_input().split(',')]
for p in items:
intp = int(p, 2)
if not intp%5:
value.append(p)
print ','.join(value)
#----------------------------------------#
问题12
2级
问题:
编写一个程序,它将找到介于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)
#----------------------------------------#
问题13
2级
问题:
编写一个接受句子并计算字母和数字数量的程序。
假设将以下输入提供给程序:
你好,世界! 123
然后,输出应为:
字母10
数字3
提示:
如果将输入数据提供给问题,则应假定它是控制台输入。
解决方案:
s = raw_input()
d={"DIGITS":0, "LETTERS":0}
for c in s:
if c.isdigit():
d["DIGITS"]+=1
elif c.isalpha():
d["LETTERS"]+=1
else:
pass
print "LETTERS", d["LETTERS"]
print "DIGITS", d["DIGITS"]
#----------------------------------------#
问题14
2级
问题:
编写一个接受句子的程序,并计算大写字母和小写字母的数量。
假设将以下输入提供给程序:
你好,世界!
然后,输出应为:
大写1
小写案例9
提示:
如果将输入数据提供给问题,则应假定它是控制台输入。
解决方案:
s = raw_input()
d={"UPPER CASE":0, "LOWER CASE":0}
for c in s:
if c.isupper():
d["UPPER CASE"]+=1
elif c.islower():
d["LOWER CASE"]+=1
else:
pass
print "UPPER CASE", d["UPPER CASE"]
print "LOWER CASE", d["LOWER CASE"]
#----------------------------------------#
问题15
2级
问题:
编写一个程序,以给定的数字作为a的值来计算a + aa + aaa + aaaa的值。
假设将以下输入提供给程序:
9
然后,输出应为:
11106
提示:
如果将输入数据提供给问题,则应假定它是控制台输入。
解决方案:
a = raw_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
#----------------------------------------#
问题16
2级
问题:
使用列表推导对列表中的每个奇数取平方。 该列表由逗号分隔的数字序列输入。
假设将以下输入提供给程序:
1,2,3,4,5,6,7,8,9
然后,输出应为:
1,3,5,7,9
提示:
如果将输入数据提供给问题,则应假定它是控制台输入。
解决方案:
values = raw_input()
numbers = [x for x in values.split(",") if int(x)%2!=0]
print ",".join(numbers)
#----------------------------------------#
问题17
2级
问题:
编写一个程序,该程序根据来自控制台输入的交易日志来计算银行帐户的净额。 事务日志格式如下所示:
D 100
200号
D表示存款,W表示提款。
假设将以下输入提供给程序:
D 300
D 300
200号
D 100
然后,输出应为:
500
提示:
如果将输入数据提供给问题,则应假定它是控制台输入。
解决方案:
netAmount = 0
while True:
s = raw_input()
if not s:
break
values = s.split(" ")
operation = values[0]
amount = int(values[1])
if operation=="D":
netAmount+=amount
elif operation=="W":
netAmount-=amount
else:
pass
print netAmount
#----------------------------------------#
问题18
3级
问题:
网站要求用户输入用户名和密码进行注册。 编写程序以检查用户输入的密码是否有效。
以下是检查密码的标准:
1. [a-z]之间至少1个字母
2. [0-9]之间至少1个数字
1. [A-Z]之间至少1个字母
3. [$#@]中的至少1个字符
4.交易密码的最小长度:6
5.交易密码的最大长度:12
您的程序应接受逗号分隔的密码序列,并将根据上述条件进行检查。 符合条件的密码将被打印,每个密码之间用逗号分隔。
例子
如果输入以下密码作为程序输入:
ABd1234 @ 1,a F1#,2w3E *,2We3345
然后,程序的输出应为:
ABd1234 @ 1
提示:
如果将输入数据提供给问题,则应假定它是控制台输入。
解决方案:
import re
value = []
items=[x for x in raw_input().split(',')]
for p in items:
if len(p)<6 or len(p)>12:
continue
else:
pass
if not re.search("[a-z]",p):
continue
elif not re.search("[0-9]",p):
continue
elif not re.search("[A-Z]",p):
continue
elif not re.search("[$#@]",p):
continue
elif re.search("\s",p):
continue
else:
pass
value.append(p)
print ",".join(value)
#----------------------------------------#
问题19
3级
问题:
您需要编写一个程序以升序对(名称,年龄,身高)元组进行排序,其中名称是字符串,年龄和身高是数字。 元组由控制台输入。 排序标准是:
1:根据名称排序;
2:然后根据年龄排序;
3:然后按分数排序。
优先级是名称>年龄>得分。
如果给出以下元组作为程序的输入:
汤姆19,80
约翰20,90
乔尼17,91
乔尼,17,93
杰森21,85
然后,程序的输出应为:
[('John','20','90'),('Jony','17','91'),('Jony','17','93'),('Json','21 ','85'),('Tom','19','80')]
提示:
如果将输入数据提供给问题,则应假定它是控制台输入。
我们使用itemgetter启用多个排序键。
解决方案:
from operator import itemgetter, attrgetter
l = []
while True:
s = raw_input()
if not s:
break
l.append(tuple(s.split(",")))
print sorted(l, key=itemgetter(0,1,2))
#----------------------------------------#
问题20
3级
问题:
用生成器定义一个类,该生成器可以迭代在给定范围0和n之间可以被7整除的数字。
提示:
考虑使用量
解决方案:
def putNumbers(n):
i = 0
while i<n:
j=i
i=i+1
if j%7==0:
yield j
for i in reverse(100):
print i