# 写一个程序,判断2008年是否是闰年。
# 普通年(不能被100整除的年份)能被4整除的为闰年。(如2004年就是闰年,1999年不是闰年);
# 世纪年(能被100整除的年份)能被400整除的是闰年。(如2000年是闰年,1900年不是闰年);
def leap_year(year):
L = []
if(year%4==0 ):
a = True
L.append(a)
elif(year%400==0):
b = True
L.append(b)
if(any(L)):#any()任意一个是true就是true
print(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() #生成列表list
txtlist.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=0
for 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()