现需要统计若干段文字(英文)中的不同单词数量。
如果不同的单词数量不超过10个,则将所有单词输出(按字母顺序),否则输出前10个单词。
注1:单词之间以空格(1个或多个空格)为间隔。
注2:忽略空行或者空格行。
注3:单词大小写敏感,即'word'与'WORD'是两个不同的单词 。
若干行英文,最后以!!!!!
为结束。
不同单词数量。 然后输出前10个单词(按字母顺序),如果所有单词不超过10个,则将所有的单词输出。
str = []
a = input()
while a != "!!!!!":
str += [" "]
str += a
a = input()
count = []
strCount = len(str)
start = end = 0
str.insert(0, " ")
str.insert(len(str), " ")
flag = 0
for i in range(len(str)):
if str[i - 1] == " " and str[i] != " ":
flag += 1
start = i
if str[i] != " " and str[i + 1] == " ":
flag += 1
end = i
if flag == 2:
sub = str[start:end + 1]
sub = "".join(sub)
flag = 0
if sub not in count:
count += [sub]
print(len(count))
count.sort()
if len(count) > 10:
for j in range(10):
print(count[j])
else:
for j in range(len(count)):
print(count[j])
删除列表中所有符合条件的值。
输入n,代表要测试n次。每次测试:
首先,输入1行字符串(字符串内的元素使用空格分隔)
然后,输入要删除的元素x。
输出删除元素x后的每行字符串。如果元素全部被删除,则输出空行。
注意:行尾不得有多余的空格。
n=int(input())
for i in range (n):
a=input()
b=input()
print(*(a.replace(b," ")).split())
数据的第一行是n,代表有n行整数成绩需要统计。
接着连续输入n个成绩,如果中途输入错误(非整数
)提示'Error! Reinput',
并输出错误的数据。然后重新输入,直到输入n个正确的成绩才退出。如果整个
输入过程中没有错误数据,提示'All OK'。最后输出所有学生的平均值,保留两
位小 数。
注:该程序可以适当处理小错误,比如对于有些数据如果左右包含空格,先去掉
空格再行处理。
第一行为n,代表接下来要输入的正确行数。
然后输入成绩,输入错误则提示重输,直到输入n行正确的数据为止。
如果输入过程中无异常,需输出All OK
。
n = int(input())
num = n
sum_grade = 0
flag = True
err_grade = ""
err_list = []
while n:
try:
err_grade = input()
grade = int(err_grade)
sum_grade += grade
n = n-1
except:
flag = False
err_list.append(err_grade)
if flag:
print("All OK")
else:
for grade in err_list:
print("Error for data %s! Reinput" % grade)
print("avg grade = %.2f" % (sum_grade/num))
输入a,b班的名单,并进行如下统计。
第1行::a班名单,一串字符串,每个字符代表一个学生,无空格,可能有重复字符。
第2行::b班名单,一串字符串,每个学生名称以1个或多个空格分隔,可能有重复学生。
第3行::参加acm竞赛的学生,一串字符串,每个学生名称以1个或多个空格分隔。
第4行:参加英语竞赛的学生,一串字符串,每个学生名称以1个或多个空格分隔。
第5行:转学的人(只有1个人)。
特别注意:输出人员名单的时候需调用sorted函数,如集合为x,则print(sorted(x))
输出两个班级的所有人员数量
输出两个班级中既没有参加ACM,也没有参加English的名单和数量
输出所有参加竞赛的人员的名单和数量
输出既参加了ACM,又参加了英语竞赛的所有人员及数量
输出参加了ACM,未参加英语竞赛的所有人员名单
输出参加英语竞赛,未参加ACM的所有人员名单
输出参加只参加ACM或只参加英语竞赛的人员名单
最后一行:一个同学要转学,首先需要判断该学生在哪个班级,然后更新该班级名单,并输出。如果没有在任何一班级,什么也不做。
def HandleBlock(list):
new_list = []
for item in list:
if item != "":
new_list.append(item)
return new_list
grade_a_str = input()
grade_b_original_list = input().split(" ")
#
acm_original_list = input().split(" ")
english_original_list = input().split(" ")
trans_school = input()
grade_a_list = []
for item in grade_a_str:
grade_a_list.append(item)
grade_b_list = HandleBlock(grade_b_original_list)
acm_list = HandleBlock(acm_original_list)
english_list = HandleBlock(english_original_list)
check_table = {}
for item in grade_a_list + grade_b_list:
check_table[item] = 0
# 通过哈希冲突来去重
final_a = []
final_b = []
for item in grade_a_list:
if check_table[item] == 0:
final_a.append(item)
check_table[item] = 1
for item in grade_b_list:
if check_table[item] == 0:
final_b.append(item)
check_table[item] = 1
print(f'Total: {len(final_a) + len(final_b)}')
Not_in_race = []
All_racers = []
ACMandEnglish = []
Only_ACM = []
Only_English = []
ACMorEnglish = [] # 只参加了acm或者english中的一项
for item in final_a + final_b:
if item in acm_list:
All_racers.append(item)
if item in english_list:
ACMandEnglish.append(item)
else:
Only_ACM.append(item)
elif item in english_list:
All_racers.append(item)
if item in acm_list:
ACMandEnglish.append(item)
else:
Only_English.append(item)
else:
Not_in_race.append(item)
ACMorEnglish = list(set(Only_ACM) ^ set(Only_English))
print(f"Not in race: {sorted(Not_in_race)}, num: {len(Not_in_race)}")
print(f"All racers: {sorted(All_racers)}, num: {len(All_racers)}")
print(f"ACM + English: {sorted(ACMandEnglish)}, num: {len(ACMandEnglish)}")
print(f"Only ACM: {sorted(Only_ACM)}")
print(f"Only English: {sorted(Only_English)}")
print(f"ACM Or English: {sorted(ACMorEnglish)}")
if trans_school in final_a:
print(sorted(list(set(trans_school) ^ set(final_a))))
elif trans_school in final_b:
print(sorted(list(set(trans_school) ^ set(final_b))))
else:
pass
本题要求计算下列分段函数f(x)的值(x为从键盘输入的一个任意实数):
直接输入一个实数x
在一行中按“f(x)=result”的格式输出,其中x与result都保留三位小数。
import math
x = float(input())
if math.fabs(x) < 1:
result=math.sqrt(2-2*x)
print('f({:.3f})={:.3f}'.format(x,result))
elif x >= 1:
a=2.5+(x+math.log(100))
result=(math.cos(x)+math.pow(x,2))/a
print('f({:.3f})={:.3f}'.format(x, result))
else:
result=math.exp(x)
print('f({:.3f})={:.3f}'.format(x, result))
输入一个形式如"操作数 运算符 操作数"的表达式,对2个整数进行乘、整除和求余(%)运算。
在一行中输入形式如"操作数 运算符 操作数"的表达式。
在一行中输出表达式及计算结果。
s = input()
s = s.replace(' ','')
try:
print(s,eval(s),sep='=')
except:
print('Invalid operator')
读入两个整数a和b,输出绝对值a和绝对值b的各对应位乘积之和,如a=1234,b=608,则输出值为:“1×0+2×6+3×0+4×8“的值,即44。
在一行中输入两个数
在一行中输出对应位乘积之和
a,b=map(int,input().split())
a=abs(a)
b=abs(b)
sum=0
while True:
if a==0 and b==0:
break
sum=sum+((a%10)*(b%10))
a=a//10
b=b//10
print(sum)
读入 1 个正整数 n(3≤n<9)和 1 个整数 digit(2<=digit<=9), 请输出一个 n 阶的方阵, 该矩阵所有边上的元素都是 digit, 其它元素都是 digit-1.
在一行中输入n和digt
输出n 阶的方阵
list=list(input().split())
n=int(list[0])
digit=int(list[1])
if 3<=n<9 and 2<=digit<=9:
for i in range(0,n):
if i==0:
for j in range(0,n):
print('%1d'%(digit),end=" ")
print()
if i==n-1:
for j in range(0,n):
print('%1d'%(digit),end=" ")
print()
if i!=0 and i!=n-1:
for j in range(1,n):
if j==1:
print('%1d'%(digit),end=" ")
if j==n-1:
print('%1d'%(digit),end=" ")
else:
print('%1d' % (digit-1),end=" ")
print()
输入 1 个正整数 n(1≤n),再按行读入 n 阶方阵 a 和 b, 生成并输出 n 阶方阵 c,c 中的元素是 a 和 b 对应元素的和. c[i][j]=a[i][j]+b[i][j] i,j=0,1,2...n-1(1<=c[i]<=99)
在第一行输入n 在第二行输入a方阵 在第一行输入b方阵
输出c方阵
n=int(input())
a=input().split()
b=input().split()
l=len(a)
a=[int(x) for x in a]
b=[int(x) for x in b]
c=[]
k=0
for i in range(l):
c.append(a[i]+b[i])
for i in range(n):
for j in range(n):
print("{:2d}".format(c[k]),end=" ")
k+=1
print("")
输入一个正整数n (n>4),再输入n个实数,求出歌手的得分(保留2位小数)。设一歌唱评奖晚会上有n(n>4)个评委为歌手打分.评分规则:每个评委依次打分,再去掉2个最高分和2个最低分,计算余下的分数平均值为歌手的得分.
在第一行中输入n 在第二行中输入n个分数
在一行中输出平均分数
n=int(input())
a=[int(x) for x in input().split()]
max1=max(a)
a.remove(max1)
max2=max(a)
a.remove(max2)
min1=min(a)
a.remove(min1)
min2=min(a)
a.remove(min2)
sum=0
for i in range(len(a)):
sum=sum+a[i]
result=sum/len(a)
print("aver={:.2f}".format(result))
建议收藏,求一波三连......