目录
001好数坏数
输入一个正整数,如果是5和7的公倍数,就输出 best,如果不是7的倍数,但是是5的倍数就输出good,其它情况就输出bad。注意这些词都是小写 输入 一个正整数n 输出 根据要求输出best,good或bad 样例输入 样例#1 35 样例#2 14 样例#3 10 样例输出 样例#1 best 样例#2 bad 样例#3 good
n = eval(input())
if n % 35 == 0:
print('best')
elif n % 5 == 0:
print('good')
else:
print('bad')
002买手办
小明到了手办店非常开心,要大买特买。但他不是大富豪,所以只能买不超过60元手办。 现在知道若干手办的价钱,请计算小明一共要花掉多少钱。 输入 一行,若干个正整数,每个正整数表示一个手办的价钱 输出 小明会买下所有不超过60元的手办。输出他将要花掉多少钱 样例输入 120 60 60 30 50 10 100 样例输出 210
lst=map(int, input().split())
s=0
for i in lst:
if i<=60:
s+=i
print(s)
003字符计数
一个句子中有多个单词,单词之间可能有一个或多个空格。给定一个字符,请计算该字符在每个单词中的出现次数。 本题目不区分大小写字母。例如,字符A与字符a在单词Abandon中的出现次数都认为是2。 本题目有多组输入数据。 输入 第一行一个整数n,表示数据组数; 接下来共2n行,每两行为一组: 每组中第一行为给定的字符,保证为小写或大写字母; 每组中第二行为输入的句子,保证只由大小写字母或空格组成,且第一个单词前与最后一个单词后都没有空格。 输出 n行,每行若干个整数,表示句子的每个单词中,给定字符的出现次数。 每行的相邻整数之间用一个空格分隔。 行末多输出了空格没有关系 样例输入 3 a Abandon that B Bob is the BIG BOSS z Zelda ZZZ 样例输出 2 1 2 0 0 1 1 1 3
n=eval(input())
for i in range(n):
s=input()
s=s.lower()
lst=input().split()
for word in lst:
word=word.lower()
print(word.count(s),end=" ")
print("")
004括号内的信息
程序填空 对于给定的一行字符串,输出其中每一对小括号里的信息。如果找不到配对的小括号,就输出NONE。 “配对”指的是一个左括号与其右侧最近的右括号的匹配,例如"(a)(b)"里,第一个左括号与第一个右括号配对,第二个左括号与第二个右括号配对。 本题目保证配对的小括号里一定有内容,也就是不会出现"a()b"这样的字符串。 本题目保证配对的小括号不嵌套,也就是不会出现"xy(a(bc)def)z"这样的字符串。 注意,尽管类似"123(ab)cd(ef)gh(ij)k"这样的字符串中也存在"(...(...)...)"的模式,但此时“配对”的小括号没有嵌套,因此是满足题目限制的。 输入 第一行一个整数n,表示输入字符串行数。 接下来n行里每行一个不包含空格的字符串s。 输出 输出共n行,每行若干个字符串,相邻字符串间用一个空格分隔,表示每行输入字符串中各个小括号里的内容。 样例输入 3 1;!(#234)5@6(78)9(0)* 0(a))(()(bcd)12 )Nothing( 样例输出 #234 78 0 a ( bcd NONE 提示 在正则表达式中没有分组时,re.findall返回所有匹配子串构成的列表。 有且只有一个分组时,re.findall返回的是一个子串的列表,每个元素是一个匹配子串中分组对应的内容。 在正则表达式中有超过一个分组时,re.findall返回的是一个元组的列表,每个元组对应于一个匹配的子串,元组里的元素,依次是1号分组、2号分组、3号分组......匹配的内容
import re
exit = 10 #此句没用
n = int(input())
#填空内容应为 pt = "XXXX",即写一个正则表达式pt
pt=r"[(](.*?)[)]"
for i in range(n):
s = input()
k = re.findall(pt,s)
if k:
for x in k:
print(x, end = " ")
print("")
else:
print("NONE")
005纸币兑换硬币
用一张面值为x元的纸币换面值为y角、z角的硬币,每种硬币至少一枚,问有几种换法?请注意,纸币的单位是元,硬币的单位是角,一元等于10角。 输入 输入三个正整数x、y和z 输出 输出一个正整数,为换法的种数 样例输入 样例#1 1 2 5 样例#2 2 2 4 样例#3 3 4 6 样例输出 样例#1 0 样例#2 4 样例#3 2 提示 枚举y、z可能枚数的全部组合
s=input().split()
x,y,z=eval(s[0]),eval(s[1]),eval(s[2])
x*=10
count=0
for i in range(1,x//y+1):
for j in range(1,x//z+1):
if i*y+j*z==x:
count+=1
print(count)
006商品评分
购物网站上有许多商品。每个商品都会得到若干用户评分(为1-10的正整数),取这些评分的平均数作为商品总评分。 给出各个商品的名称及它们对应的若干用户评分,请按照商品总评分从高到低的顺序输出商品名称;如果两个商品总评分相同,则用户评分数量多的商品排在前面。 题目保证商品名称各不相同,且不会出现两个总评分与用户评分数量完全相同的商品。 本题目有多组输入数据。 输入 第一行一个整数n,表示数据组数; 接下来n组数据,每组数据中: 第一行一个整数m,表示该组数据中商品个数; 接下来m行,每行由一个字符串s(只含大小写字母)和若干个正整数(至多50个)组成,分别表示商品名称和用户评分。 输出 对于每组数据,按题目要求的排序结果,每行输出一个商品名称。 样例输入 2 3 Apple 10 8 Banana 9 9 9 Peach 10 9 3 Apple 10 8 Banana 9 Peach 9 8 样例输出 Peach Banana Apple Apple Banana Peach
n=eval(input())
for i in range(n):
m=eval(input())
result=[]
for j in range(m):
lst=input().split()
name=lst[0]
rate=lst[1:]
num=len(lst)-1
ave=sum(eval(i) for i in rate)/num
result.append([name,ave,num])
result.sort(