首页 > 代码库 > python基础的几个小练习题

python基础的几个小练习题

题目:

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

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

3、(文件题)有一个“record.txt”的文件,内容如下:

# name, age, scoretom, 12, 86Lee, 15, 99Lucy, 11, 58Joseph, 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<year>\d{4})\.(?P<month>\d{2})\.(?P<day>\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, day105 date = datetime.date(int(year), int(month), int(day))106 w = date.weekday() + 1107 W = str(w)108 os.rename(filename, "output_"+year+-+month+-+day+-+str(w)+".txt")

 

python基础的几个小练习题