下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

一个简单的python编程题,教你判断是否是闰年

作者:课课家教育     来源: http://www.kokojia.com点击数:2226发布时间: 2016-01-06 18:42:42

标签: python编程题app

大神带你学编程,欢迎选课

1、写一个程序,判断2008年是否是闰年。

  2、写一个程序,用于计算2008年10月1日是这一年的第几天?(2008年1月1日是这一年的第一天)

  3、(文件题)有一个“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是否符合此要求? 如何纠正错误的地方?

  4、(练习正则表达式)有一个文件,文件名为output_1981.10.21.txt 。下面使用Python: 读取文件名中的日期时间信息,并找出这一天是周几。将文件改名为output_YYYY-MM-DD-W.txt (YYYY:四位的年,MM:两位的月份,DD:两位的日,W:一位的周几,并假设周一为一周第一天)

  以下是程序清单:

  

  1 #-*-coding:utf-8 -*-

  2

  3 # (1) judge leap year

  4 def judge_leap_year(n):

  5 # if n%4 == 0 and n%100 != 0:

  6 # return True

  7 # if n%100 == 0 and n%400 == 0:

  8 if (n%4 == 0 and n%100 != 0) or (n%100 == 0 and n%400 == 0):

  9 return True

  10 else:

  11 return False

  12

  13 # ===================================================================

  14 # (2) computing the sum days of any day(**.**.**)

  15 def compute_year_counts(datestr):

  16 # deal with these case:

  17 # 2012.12.2

  18 # 2012/12/2

  19 # 2012-12-2

  20 if datestr.find('.') > 0: date = datestr.split('.')

  21 if datestr.find('/') > 0: date = datestr.split('/')

  22 if datestr.find('-') > 0: date = datestr.split('-')

  23

  24 year = int(date[0])

  25 month = int(date[1])

  26 day = int(date[2])

  27 if (month < 1 or month > 12):

  28 print "the error month!"

  29 return -1

  30 if (day > 31):

  31 print "the error day!"

  32 return -1

  33

  34 days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

  35

  36 # nDays = 0

  37 # i = 1

  38 # while i < month:

  39 # nDays += days[i-1]

  40 # i = i + 1

  41 nDays = sum(days[i] for i in range(0, month - 1))

  42 if (judge_leap_year(year)):

  43 nDays += 1

  44 return nDays + day

  45

  46 datestring = raw_input("input the datetime info:-->")

  47 print compute_year_counts(datestring)

  48

  49 # ===================================================================

  50 # (3) read and write file: use class if perfect!

  51 class UserProfier(object):

  52 def __init__(self, name, age, score):

  53 self.name = name

  54 self.age = age

  55 self.score = score

  56

  57 def read_file_and_anlysis(filetext):

  58 line_read = []

  59 user_scores = []

  60 has_invalid_name = False #the invalid name

  61

  62 for line in filetext:

  63 if not line.startswith('#') and len(line.strip()) != 0:

  64 if line[0].islower():

  65 line = line[0].upper() + line[1:]

  66 has_invalid_name = True

  67 cur = line.strip().split(', ')

  68 user_scores.append(UserProfier(cur[0], int(cur[1]), int(cur[2])))

  69 line_read.append(line)

  70 # print the file

  71 print "print the file"

  72 for i in line_read:

  73 print i

  74 # statistic the score < 60

  75 print "users whose score lower 60:"

  76 for scores in filter(lambda s: s.score < 60 , user_scores):

  77 print scores.name

  78 # statistic the begin of name which is 'L'

  79 print "users whose name's begin is 'L':"

  80 for names in filter(lambda s: s.name.startswith('L'), user_scores):

  81 print names.name

  82 # statistic the total scores of all one

  83 print "the total scores of everyone:"

  84 allscores = map(lambda s:s.score, user_scores)

  85 print allscores

  86 print reduce(lambda x, y: x+y, allscores, 0)

  87

  88 # open the file

  89 with open("record.txt") as f:

  90 read_file_and_anlysis(f)

  91

  92 # ===================================================================

  93 # (4) the useful example of regular expression

  94 import os, re, datetime

  95

  96 filename = "output_1981.10.21.txt"

  97

  98 date_time = re.search("(?P\\d{4})\\.(?P\\d{2})\\.(?P\\d{2})\\.", filename)

  99

  100 year = date_time.group('year')

  101 month = date_time.group('month')

  102 day = date_time.group('day')

  103

  104 print year, month, day

  105 date = datetime.date(int(year), int(month), int(day))

  106 w = date.weekday() + 1

  107 W = str(w)

  108 os.rename(filename, "output_"+year+'-'+month+'-'+day+'-'+str(w)+".txt")

赞(9)
踩(11)
分享到:
华为认证网络工程师 HCIE直播课视频教程