python核心编程第六章练习6-15

转换。
(a)给出两个可识别格式的日期,比如MM/DD/YY或者DD/MM/YY格式。计算出两个日期之间的天数。
(b)给出一个人的生日,计算此人从出生到现在的天数,包括所有的闰月。
(c)还是上面的例子,计算出此人下次过生日还有多少天。

【答案】
(a)代码如下:

def date_convert(date_input):
    month = int(date_input.split(‘/‘)[0])
    day   = int(date_input.split(‘/‘)[1])
    year  = int(‘20‘ + date_input.split(‘/‘)[2])
    return (year, month, day)

import datetime
date_input = raw_input(‘Please input the begin date, MM / DD / YY ... ‘)
d1 = datetime.date(date_convert(date_input)[0], date_convert(date_input)[1], date_convert(date_input)[2])
date_input = raw_input(‘Please input the end date, MM / DD / YY ... ‘)
d2 = datetime.date(date_convert(date_input)[0], date_convert(date_input)[1], date_convert(date_input)[2])
print (d2 - d1).days

  

(b)代码如下:

def date_convert(date_input):
    month = int(date_input.split(‘/‘)[0])
    day   = int(date_input.split(‘/‘)[1])
    year  = int(date_input.split(‘/‘)[2])
    return (year, month, day)

import datetime
date_input = raw_input(‘Please input his birthday, MM / DD / YYYY ... ‘)
d1 = datetime.date(date_convert(date_input)[0], date_convert(date_input)[1], date_convert(date_input)[2])
print (datetime.date.today() - d1).days

  

(c)代码如下:

def date_convert(date_input):
    month = int(date_input.split(‘/‘)[0])
    day   = int(date_input.split(‘/‘)[1])
    year  = int(date_input.split(‘/‘)[2])
    return (year, month, day)

import datetime
date_input = raw_input(‘Please input his birthday, MM / DD / YYYY ... ‘)

import time
next_year = int(time.strftime(‘%Y‘,time.localtime(time.time()))) + 1
next_birthday = datetime.date(next_year, date_convert(date_input)[1], date_convert(date_input)[2])
print (next_birthday - datetime.date.today()).days

  以上代码支持06/13/15  不支持06/13/2015

时间: 2024-07-28 17:57:11

python核心编程第六章练习6-15的相关文章

python核心编程--第六章 6.22 练习

6.22 练习 初学python,如果代码有问题,欢迎指正. #!/usr/bin/python # -*- coding: utf-8 -*- #6–1. 字符串.string 模块中是否有一种字符串方法或者函数 #可以帮我鉴定一下一个字符串是否是另一个大字符串的一部分? import string ss = "I'm chinese." substr = 'chinese' index = ss.find(substr) if index == -1: print("No

python核心编程第六章练习6-14

随机数.设计一个“石头.剪子.布”游戏,有时又叫“Rochambeau”,你小时候可能玩过,下面是规则.你和你的对手,在同一时间做出特定的手势,必须是下面一种:石头.剪子.布.胜利者从下面的规则产生,这个规则本身是个悖论.(a)布包石头.(b)石头砸剪子.(c)剪子剪破布.在你的计算机版本中,用户输入他/她的选项,计算机找一个随机选项,然后由你的程序来决定一个胜利者或者平手.注意,最好的算法是尽量少使用if语句.[答案]代码如下: #!/usr/bin/env python # -*- codi

python 核心编程第六章课后题自己做的答案

6–6. 字符串.创建一个 string.strip()的替代函数:接受一个字符串,去掉它前面和后面的 空格(如果使用 string.*strip()函数那本练习就没有意义了) 1 'Take a string and remove all leading and trailing whitespace' 2 3 def newStrip(str): 4 'delete blanks around a string' 5 _end = len(str) 6 _start = 0 7 8 # de

Python核心编程 第六章课后习题

6–1. 字符串.string 模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串 是否是另一个大字符串的一部分? Answer:in     not in 6-2. #! /usr/bin/env python # coding: utf-8 ''' 6–2. 字符串标识符.修改例 6-1 的 idcheck.py 脚本,使之可以检测长度为一的标识符,并且 可以识别 Python 关键字,对后一个要求,你可以使用 keyword 模块(特别是 keyword.kelist)来帮你.

python核心编程第六章练习6-13

6-13.字符串.string模块包含三个函数,atoi(),atol()和atof(),他们分别负责把字符串转换成整型.长整型和浮点型数字.从Python 1.5起,Python的内建函数int().long().float()也可以做同样的事了,本文来,complex()函数可以把字符串转换成复数(然而1.5之前,这些转换函数只能工作于数字之上)自博客园.string模块中并没有实现一个atoc()函数,那么你来实现一个atoc(),接受单个字符串做参数输入,一个表示复数的字符串,例如'-1

python 核心编程 第六章习题

6-6 创建一个类似 string.strip() 函数 方法一 低效方法 大量复制和生成子串对象 def str_strip(s): while len(s)>=2: if s[0]==' ': s=s[1:] else: break while len(s)>=2: if s[-1]==' ': s=s[:-1] else: break if s==' ' or s=='': return '' else: return s 方法二: 转换成列表 def str_strip(s): if

【3】python核心编程 第六章-序列:字符串、列表和元组

1.序列类型操作符 1 序列操作符 作用 2 seq[ind] 获得下标为ind 的元素 3 seq[ind1:ind2] 获得下标从ind1 到ind2 间的元素集合 4 seq * expr 序列重复expr 次 5 seq1 + seq2 连接序列seq1 和seq2 6 obj in seq 判断obj 元素是否包含在seq 中 7 obj not in seq 判断obj 元素是否不包含在seq 中 2.序列类型可用的内建函数 1 函数名 功能 2 enumerate(iter) 接受

python核心编程第六章练习

字符串的一些方法: string.split(str)  以str 为分隔符(默认为空隔)切片string,如果num有指定值,则仅分隔num个子字符串. string.count(str)  计算str在string中出现的次数. string.find(str)  检测str是否存在string中,存在返回索引值,不存在则返回-1. string.casefold()  将string所有的字符改为小写 string.capitalize(str)  将string的第一个字符改为大写 >>

python核心编程第六章练习6-12

6-12.字符串.(a)创建一个名字为findchr()的函数,函数声明如下.def findchr(string, char)findchr()要在字符串string中查找字符char,找到就返回该值得索引,否则返回-1.不能用string.*find()或者string.*index()函数和方法.(b)创建另一个叫rfindchr()的函数,查找字符char最后一次出现的位置.它跟findchr()工作类似,不过它是从字符串的最后开始向前查找的.(c)创建第三个函数,名字叫subchr()