题目描述
津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。
输入格式
输入包括 7 行数据,分别表示周一到周日的日程安排。每行包括两个小于 10 的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。
输出格式
一个数字。如果不会不高兴则输出 0,如果会则输出最不高兴的是周几(用 1,2,3,4,5,6,7 分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。
首先,我们要先了解一个函数index。
它的用途如果我们需要在序列类型数据(字符串、元组、列表)中查找某个元素并输出对应的索引值,就需要使用到index()方法了。
index()方法,描述index() 函数用于从序列s中找出某个值第一个出现时的索引位置。
用法s.index(x[,i[,j]])注释:s——序列类型数据(字符串、元组、列表)x—— 查找的对象。返回值:该方法返回查找对象的索引位置,如果没有找到对象则抛出异常。
'''
index的具体用法
'''#定义一个列表
list = [1, 8, 16, "影迷", 31, 24, "影迷", 104]# 查找list中第一次出现字符串"影迷"的索引,返回值为 3
print(list.index("影迷"))# 如果想要精确知道第一次出现字符串"影迷"的索引,则加上区间范围,此时返回值为 6
print(list.index("影迷", 4, 7))
而我们这道题的代码如下:
m = []
for i in range(7):s = sum(map(int, input().split()))n = s - 8 if s > 8 else 0m.append(n)
if sum(m) == 0:print(0)
else:print(m.index(max(m))+1)
首先计算s的值判断是否大于8,如果大于则往列表m装入n的值否则装入0,然后引用index函数找出列表m里最大的索引值然后再加一就是周几,这样就把我们的问题给解决了。这里有一个很好的思想就是将全部的值都在m列表里有一个值与他形成对照,这样找最不开心的时候只需找m列表里最大的值并第一次出现的索引加上1就是对应的周几或者我们在range(1,8)这样最后结果就不需要再加一了。