题目:

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:一位的周几,并假设周一为一周第一天)

以下是程序清单:

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

 # (1) judge leap year
def judge_leap_year(n):
# if n%4 == 0 and n%100 != 0:
# return True
# if n%100 == 0 and n%400 == 0:
if (n%4 == 0 and n%100 != 0) or (n%100 == 0 and n%400 == 0):
return True
else:
return False # ===================================================================
# (2) computing the sum days of any day(**.**.**)
def compute_year_counts(datestr):
# deal with these case:
# 2012.12.2
# 2012/12/2
# 2012-12-2
if datestr.find('.') > 0: date = datestr.split('.')
if datestr.find('/') > 0: date = datestr.split('/')
if datestr.find('-') > 0: date = datestr.split('-') year = int(date[0])
month = int(date[1])
day = int(date[2])
if (month < 1 or month > 12):
print "the error month!"
return -1
if (day > 31):
print "the error day!"
return -1 days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] # nDays = 0
# i = 1
# while i < month:
# nDays += days[i-1]
# i = i + 1
nDays = sum(days[i] for i in range(0, month - 1))
if (judge_leap_year(year)):
nDays += 1
return nDays + day datestring = raw_input("input the datetime info:-->")
print compute_year_counts(datestring) # ===================================================================
# (3) read and write file: use class if perfect!
class UserProfier(object):
def __init__(self, name, age, score):
self.name = name
self.age = age
self.score = score def read_file_and_anlysis(filetext):
line_read = []
user_scores = []
has_invalid_name = False #the invalid name for line in filetext:
if not line.startswith('#') and len(line.strip()) != 0:
if line[0].islower():
line = line[0].upper() + line[1:]
has_invalid_name = True
cur = line.strip().split(', ')
user_scores.append(UserProfier(cur[0], int(cur[1]), int(cur[2])))
line_read.append(line)
# print the file
print "print the file"
for i in line_read:
print i
# statistic the score < 60
print "users whose score lower 60:"
for scores in filter(lambda s: s.score < 60 , user_scores):
print scores.name
# statistic the begin of name which is 'L'
print "users whose name's begin is 'L':"
for names in filter(lambda s: s.name.startswith('L'), user_scores):
print names.name
# statistic the total scores of all one
print "the total scores of everyone:"
allscores = map(lambda s:s.score, user_scores)
print allscores
print reduce(lambda x, y: x+y, allscores, 0) # open the file
with open("record.txt") as f:
read_file_and_anlysis(f) # ===================================================================
# (4) the useful example of regular expression
import os, re, datetime filename = "output_1981.10.21.txt" date_time = re.search("(?P<year>\d{4})\.(?P<month>\d{2})\.(?P<day>\d{2})\.", filename) year = date_time.group('year')
month = date_time.group('month')
day = date_time.group('day') print year, month, day
date = datetime.date(int(year), int(month), int(day))
w = date.weekday() + 1
W = str(w)
os.rename(filename, "output_"+year+'-'+month+'-'+day+'-'+str(w)+".txt")

python基础的几个小练习题的更多相关文章

  1. python基础语法学习常见小问题

    说明:我是最近觉得python在完成很多工作中方便使用而且功能强大,想突击学习一下.用的是廖雪峰老师的教程,学习python3.X.这里是廖雪峰老师的网站链接: http://www.liaoxuef ...

  2. 第2章 Python基础-字符编码&数据类型 综合 练习题

    1.转换 将字符串s = "alex"转换成列表 s = "alex" s_list = list(s) print(s_list) 将字符串s = " ...

  3. Python基础1:一些小知识汇总

    一.#!usr/bin/env python 脚本语言的第一行,指定执行脚本的解释器. #!/usr/bin/python 是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器 ...

  4. 【python基础语法】国庆扩展练习题

    ''' 一.国庆知识小拓展 1. 用户登陆程序需求: 1. 输入用户名和密码; 2. 判断用户名和密码是否正确? (name='root', password='123') 3. 为了防止暴力破解, ...

  5. python 基础之简单购物车小程序实现

    购物车 all_list = [ ('mac',9000), ('kindle',900), ('tesla',800), ('python',105), ('bile',2000), ] savin ...

  6. python基础day7_编码及小数据池

    数字概念,字符串----小数据池 数字的范围:-5---256 字符串: 1,不能有特殊字符 2,s*20还是同一个地址,s*21之后就是另外一个地址 i1 = 6 i2 = 6 print(id(i ...

  7. 第2章 Python基础-字符编码&数据类型 字典 练习题

    1.写代码,有如下字典,按照要求实现每一个功能,dic = {'k1':'v1','k2':'v2','k3':[11,22,33]} 请循环输出所有的 key dic = {'k1':'v1','k ...

  8. Python基础知识(六)------小数据池,集合,深浅拷贝

    Python基础知识(六)------小数据池,集合,深浅拷贝 一丶小数据池 什么是小数据池: ​ 小数据池就是python中一种提高效率的方式,固定数据类型使用同一个内存地址 代码块 : ​ 一个文 ...

  9. python基础语法、数据结构、字符编码、文件处理 练习题

    考试范围 '''1.python入门:编程语言相关概念2.python基础语法:变量.运算符.流程控制3.数据结构:数字.字符串.列表.元组.字典.集合4.字符编码5.文件处理''' 考试内容 1.简 ...

随机推荐

  1. POJ2456Aggressive cows-(二分判定)

    Description Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stal ...

  2. Codeforces Round #439 C. The Intriguing Obsession

    题意:给你三种不同颜色的点,每种若干(小于5000),在这些点中连线,要求同色的点的最短路大于等于3或者不连通,求有多少种连法. Examples Input 1 1 1 Output 8 Input ...

  3. spring和springmvc配置分离

    在配置springmvc的时候,我们可以把所有配置配置到springmvc的xml文件中, 也可以分多个 Spring 的配置文件, 然后使用 import 节点导入其他的配置文件. 但是,通常情况下 ...

  4. HTML 元素大小

    1.元素的偏移量 元素的可见大小是由其高度.宽度决定,包括所有的内边距.滚动条和边框大小(不包括外边距). offsetHeight :元素在垂直方向上占用的空间大小,以像素计算.包括元素的高度,水平 ...

  5. mysql学习笔记--数据完整性

    一.数据完整性包括: 1. 域完整性 2. 实体完整性 3. 引用完整性 二.保证实体完整性 1. 主键约束 2. 唯一约束 3. 自动增长列 三.保证域完整性 1. 数据类型约束 2. 非空约束 3 ...

  6. 360. Sort Transformed Array二元一次方程返回大数序列

    [抄题]: Given a sorted array of integers nums and integer values a, b and c. Apply a quadratic functio ...

  7. Git-git push -u为何第二次不用指定-u?

    1,如果当前分支只有一个追踪分支,那么主机名都可以省略,如:git push origin 将当前分支推送到origin主机的对应分支 2,$ git push 如果当前分支与多个主机存在追踪关系,那 ...

  8. Subarray Sums Divisible by K LT974

    Given an array A of integers, return the number of (contiguous, non-empty) subarrays that have a sum ...

  9. 简单了解下java中的堆、栈和方法区。

    堆.栈.方法区 1,首先了解下java中的数据类型. ①java中的八大基本数据类型:boolean, char , byte, short, int, long , float , double. ...

  10. 叙述 activemq 与spring 主题实现 小功能实现

    在上一篇文章里 我说到了 maven的配置  我现在直接说 xml配置 首先我先描述 生产者的信息 <?xml version="1.0" encoding="UT ...