python 实例四
https://www.cnblogs.com/evablogs/p/6754981.html
题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:
月份天数:
月份 | 天数 |
2 | 平年28天,闰年29天 |
1,3,5,7,8,10,12 | 31 |
4,6,9,11 | 30 |
闰年:
2、整百年:能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
>>> L = [ 31 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 ] >>> def caldate(a,b,c): s = 0 if (a % 100 ! = 0 and a % 4 = = 0 or a % 100 = = 0 and a % 400 = = 0 ): L.insert( 1 , 29 ) else : L.insert( 1 , 28 ) for i in range (b - 1 ): s = s + L[i] return s + c >>> caldate( 2016 , 1 , 2 ) 2 >>> caldate( 2016 , 3 , 2 ) 62 |
改进版:考虑了月份和天数的有效性(哈哈,对比网上的答案,一看自己的代码就像是菜鸟级的,还有很多需要学习的地方)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
def caldate(a,b,c): L = [ 31 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 ] s = 0 Leap = 0 if (a % 100 ! = 0 and a % 4 = = 0 or a % 100 = = 0 and a % 400 = = 0 ): L.insert( 1 , 29 ) Leap = 1 else : L.insert( 1 , 28 ) if 0 <b< = 12 : if 0 <c< = 31 : if ((b = = 2 ) and (Leap = = 1 ) and (c< = 29 ) or ((b = = 2 ) and (Leap = = 0 ) and (c< = 28 ))): for i in range (b - 1 ): s = s + L[i] return s + c else : print 'The February should not greater than 28 or 29' else : print 'The date is error' else : print 'The month is invalid' |
输出:
1
2
3
4
5
6
7
8
9
10
|
>>> caldate( 2016 , 4 , 33 ) The date is error >>> caldate( 2017 , 2 , 30 ) The February should not greater than 28 or 29 >>> caldate( 2017 , 2 , 28 ) 59 >>> caldate( 2017 , 2 , 29 ) The February should not greater than 28 or 29 >>> caldate( 2017 , 13 , 29 ) The month is invalid |
网上答案:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#!/usr/bin/python # -*- coding: UTF-8 -*- year = int ( raw_input ( 'year:\n' )) month = int ( raw_input ( 'month:\n' )) day = int ( raw_input ( 'day:\n' )) months = ( 0 , 31 , 59 , 90 , 120 , 151 , 181 , 212 , 243 , 273 , 304 , 334 ) if 0 < month < = 12 : sum = months[month - 1 ] else : print 'data error' sum + = day leap = 0 if (year % 400 = = 0 ) or ((year % 4 = = 0 ) and (year % 100 ! = 0 )): leap = 1 if (leap = = 1 ) and (month > 2 ): sum + = 1 print 'it is the %dth day.' % sum |
输出结果:
1
2
3
4
5
6
7
|
year: 2015 month: 6 day: 7 it is the 158th day. |
python 实例四的更多相关文章
- python实例:解决经典扑克牌游戏 -- 四张牌凑24点 (二)
Hey! 如果你还没有看这篇的上文的话,可以去稍稍瞅一眼,会帮助加速理解这一篇里面涉及到的递归结构哦!(上一篇点这里:<python实例:解决经典扑克牌游戏 -- 四张牌凑24点 (一)> ...
- Python 基础 四 面向对象杂谈
Python 基础 四 面向对象杂谈 一.isinstance(obj,cls) 与issubcalss(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls ...
- 【Python实例一】使用minidom读取xml文件
前言:最近刚在廖雪峰老师的网站里学习了Python的基础内容,想着循序渐进地找点实例练练手,网上看到有很多相关资料,决定针对感兴趣的内容实际编码实践一下,昨天刚好看到有关使用Python来读取XML文 ...
- 初识Python(四)
一.数字数据类型 Python的数字数据类型用于存储数值,它是不可变的数据类型,这意味着改变数字数据类型,则需要一个新分配的对象: Python支持四种不同的数值类型: 整型(Int):通常被称为是整 ...
- 笨办法学python 第四版 中文pdf高清版|网盘下载内附提取码
笨办法学 Python是Zed Shaw 编写的一本Python入门书籍.适合对计算机了解不多,没有学过编程,但对编程感兴趣的朋友学习使用.这本书以习题的方式引导读者一步一步学习编 程,从简单的打印一 ...
- 第一个python实例--监控cpu
#第一个python实例:监控cpu #/bin/bash/env Python from __future__ import print_function from collections impo ...
- (转)Python实例手册
原文地址:http://hi.baidu.com/quanzhou722/item/cf4471f8e23d3149932af2a7 实在是太好的资料了,不得不转 python实例手册 #encodi ...
- 使用docker安装部署Spark集群来训练CNN(含Python实例)
使用docker安装部署Spark集群来训练CNN(含Python实例) http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器 ...
- C语言库函数大全及应用实例四
原文:C语言库函数大全及应用实例四 [编程资料]C语言库函数大全及应用实例四 couble fmod (double x, dou ...
随机推荐
- [Swift]LeetCode837. 新21点 | New 21 Game
Alice plays the following game, loosely based on the card game "21". Alice starts with 0 p ...
- [Swift]LeetCode882. 细分图中的可到达结点 | Reachable Nodes In Subdivided Graph
Starting with an undirected graph (the "original graph") with nodes from 0 to N-1, subdivi ...
- python传入不确定个数参数
Python3自带的一个函数为 zip ,使用方式如下: In: print zip([1, 2],[3, 4]) Out: [(1, 3), (2, 4)] In: print zip([1, 2] ...
- 在ASP.NET Core中获取客户端IP地址
随着ASP.NET的发展,有不同的方式从请求中访问客户端IP地址.WebForms和MVC Web应用程序只是访问当前HTTP上下文的请求. var ip = HttpContext.Current. ...
- AspNetCore 文件上传(模型绑定、Ajax) 两种方式 get到了吗?
就目前来说,ASP.NET Core2.1了,已经相当成熟了,希望下个项目争取使用吧!! 上传文件的三种方式("我会的,说不定还有其他方式") 模型绑定 Ajax WebUploa ...
- Python爬虫入门教程 19-100 51CTO学院IT技术课程抓取
写在前面 从今天开始的几篇文章,我将就国内目前比较主流的一些在线学习平台数据进行抓取,如果时间充足的情况下,会对他们进行一些简单的分析,好了,平台大概有51CTO学院,CSDN学院,网易云课堂,慕课网 ...
- Spring中属性注入的几种方式以及复杂属性的注入
在Spring框架中,属性的注入我们有多种方式,我们可以通过构造方法注入,可以通过set方法注入,也可以通过p名称空间注入,方式多种多样,对于复杂的数据类型比如对象.数组.List集合.map集合.P ...
- 计蒜客:Entertainment Box
Ada, Bertrand and Charles often argue over which TV shows to watch, and to avoid some of their fight ...
- Shiro+easyUI+SpringMVC实现登录认证
最近在做一个小项目,其中认证这块使用shiro+SpringMVC+easyUI,因为easyUI在提交数据的时候使用的是ajax的异步提交,所以shiro在处理数据的时候需要重写FormAuth ...
- k8s通过service访问pod(五)--技术流ken
service 每个 Pod 都有自己的 IP 地址.当 controller 用新 Pod 替代发生故障的 Pod 时,新 Pod 会分配到新的 IP 地址.这样就产生了一个问题: 如果一组 Pod ...