学了5天的作业
# 寫一個程序,判斷2008年是否是閏年。
# 普通年(不能被100整除的年份)能被4整除的為閏年。(如2004年就是閏年,1999年不是閏年);
# 世紀年(能被100整除的年份)能被400整除的是閏年。(如2000年是閏年,1900年不是閏年);def leap_year(year):L = []if(year%4==0 ):a = TrueL.append(a)elif(year%400==0):b = TrueL.append(b)if(any(L)):#any()任意一個是true就是trueprint(year,'是閏年')else:print(year, '不是閏年')leap_year(2000)# 寫一個程序,用于計算2008年10月1日是這一年的第幾天?(2008年1月1日是這一年的第一天)
#
#解題 思路:先把12個月的天數存一個數組中,1、3、5、7、8、10、12月為31天,2月份平年有28天,閏年有29天要先得出來,其它剩下的都是30天,,
# 幾月份幾號是第幾天,判斷出之前的天數,再加上當月的幾日這幾天就行了。def which_day(year, month, day):L = [31, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]#第幾天allday=0#先把2月份的天數算出來,放在L的第二位上if(year%4==0):L.insert(1,29)elif(year%400==0):L.insert(1,29)else:L.insert(1,28)print('L==',L)#幾月份幾號是第幾天,判斷出之前的天數,再加上當月的幾日這幾天就行了for i in range(month-1):print('第',i+1,'個月的天數是:',L[i])allday +=L[i]print(allday)print(year,'年',month,'月',day,'日是這一年中的第',allday,'天!')which_day(2008,10,1)# 有一個record.txt的文檔,內容如下:
# name, age, score
# tom, 12, 86
# Lee, 15, 99
# Lucy, 11, 58
# Joseph, 19, 56
# 第一欄為姓名(name),第二欄為年紀(age),第三欄為得分(score)
# 現在,寫一個Python程序,
# 1)讀取文件
# 2)打印如下結果:
# 得分低于60的人都有誰?
# 誰的名字以L開頭?
# 所有人的總分是多少?
# 3)姓名的首字母需要大寫,該record.txt是否符合此要求? 如何糾正錯誤的地方?
#解題思路:age沒用到啊,那么讀取文件把一行中的名字和分數存為一個dict就好辦多了
def get_info():f = open('mingan.txt','r')# print(f.readlines())txtlist = f.readlines() #生成列表listtxtlist.pop(0) #刪除標題第1行# print(txtlist)dic={}for i in txtlist:# print(i.split(',')[0])# 首字母是否大寫if (i.split(',')[0].istitle()):i.split(',')[0].capitalize()# 按逗號分隔,取左右2列字段dic[i.split(',')[0]] = i.split(',')[2] #給字典中添加元素# print(dic)#計算低于60分的人low_l =[]#統計首字母為L的人L_name=[]#統計所有人的總分sum_score=0for key in dic:# print(type(dic[key]))if(int(dic[key]) < 60):#要把字符串轉為int才能比較low_l.append(key)#誰的名字以L開頭if(key[0:1] =='L'):L_name.append(key)# 判斷是否所有姓名首字母都是大寫if( str(key).istitle()):str(key).capitalize()#計算總分sum_score +=int(dic[key])print('低于60分的人有:',low_l)print('誰的名字以L開頭:',L_name)print('所有人的總分是:',sum_score)
get_info()
?
總結
- 上一篇: 如何处理日志文件丢失
- 下一篇: 《算法导论》读书笔记(七)