第5章-2 图的字典表示
图的字典表示。输入多行字符串,每行表示一个顶点和该顶点相连的边及长度,输出顶点数,边数,边的总长度。比如上图O点表示:
{‘O’:{‘A’:2,‘B’:5,‘C’:4}}。用eval函数处理输入,eval函数具体用法见第六章内置函数。
输入格式:
第一行表示输入的行数 下面每行输入表示一个顶点和该顶点相连的边及长度的字符串
输出格式:
在一行中输出顶点数,边数,边的总长度
输入样例:
在这里给出一组输入。例如:
4
{
'a':{
'b':10,'c':6}}
{
'b':{
'c':2,'d':7}}
{
'c':{
'd':10}}
{
'd':{
}}
输出样例:
在这里给出相应的输出。例如:
4 5 35
答案样例:
n = eval(input())
s = 0
c = 0
for i in range(n):
d = eval(input())
d = list(d.values())[0]
for j in d.values():
c += 1
s += j
print(n,c,s)
第5章-3 四则运算(用字典实现)
四则运算(用字典实现),比较c语言的switch语句。
输入格式:
在一行中输入一个数字 在一行中输入一个四帜运算符(+,-,*,/) 在一行中输入一个数字
输出格式:
在一行中输出运算结果(小数保留2位)
输入样例1:
在这里给出一组输入。例如:
7
/
3
输出样例1:
在这里给出相应的输出。例如:
2.33
输入样例2:
在这里给出一组输入。例如:
10
/
0
输出样例2:
在这里给出相应的输出。例如:
divided by zero
答案样例:
a = input()
b = input()
c = input()
if b == '/' and c =='0':
print('divided by zero')
exit()# 直接退出,因为就这一个异常
print('%.2f'%eval(a+b+c))
第5章-4 分析活动投票情况
利用集合分析活动投票情况。第一小队有五名队员,序号是1,2,3,4,5;第二小队也有五名队员,序号6,7,8,9,10。输入一个得票字符串,求第二小队没有得票的队员
输入格式:
在一行中输入得票的队员的序列号,用逗号隔开。
输出格式:
一行中输出第二小队没有得票的队员序号。
输入样例:
在这里给出一组输入。例如:
1,5,9,3,9,1,1,7,5,7,7,3,3,1,5,7,4,4,5,4,9,5,10,9
输出样例:
在这里给出相应的输出。例如:
6 8
答案样例:
a = input().split(',')
b = [str(i) for i in range(6,11) if str(i) not in a]
print(' '.join(b))
第5章-5 统计字符出现次数
本题要求编写程序,统计并输出某给定字符在给定字符串中出现的次数。
输入格式:
输入第一行给出一个以回车结束的字符串(少于80个字符);第二行输入一个字符。
输出格式:
在一行中输出给定字符在给定字符串中出现的次数。
输入样例:
programming is More fun!
m
输出样例:
2
答案样例:
s = input()
t = input()
print(s.count(t))# 直接使用字符串的count方法
第5章-6 统计工龄
给定公司N名员工的工龄,要求按工龄增序输出每个工龄段有多少员工。
输入格式:
输入首先给出正整数N(≤10
5
),即员工总人数;随后给出N个整数,即每个员工的工龄,范围在[0, 50]。
输出格式:
按工龄的递增顺序输出每个工龄的员工个数,格式为:“工龄:人数”。每项占一行。如果人数为0则不输出该项。
输入样例:
8
10 2 0 5 7 2 5 2
输出样例:
0:1
2:3
5:2
7:1
10:1
答案样例:
a = input()
b = list(map(int,input().split()))
b.sort()
dic = {
}
for i in b:
# 使用字典的get方法就不用去判断字典中是否存在i了
dic[i] = dic.get(i,0) + 1
for x,y in dic.items():
print('{}:{}'.format(x,y))