python编写程序、从键盘输入一个年份_用Python,从键盘任意输入一个年,计算这个年是多少天。比如:输入2019年,要首先判断是否闰年...

def leap_year_or_not(year):

# 世纪闰年:能被400整除的为世纪闰年。

# 普通闰年:能被4整除但不能被100整除的年份为普通闰年。

# 闰年共有366天,其他年只有365天。

if int(year) % 400 == 0:

return True

elif int(year) % 100 !=0 and int(year) % 4 == 0:

return True

else:

return False

def calculate_days_of_year(year):

leap = leap_year_or_not(year)

if leap:

days = 366

run = "是"

else:

days = 365

run = "不是"

print("{}年{}闰年,有{}天。".format(year, run, days))

if __name__ == "__main__":

print("输入年份:")

n = input()

calculate_days_of_year(n)

运行上述代码7a686964616fe59b9ee7ad9431333431343564,输入2019回车,得到以下结果:

t01ad6a811a52db8289.png

追问 : 有简单点的么?

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是Python代码实现: ```python date_str = input("请输入日期(格式为YYYY-MM-DD):") year, month, day = map(int, date_str.split("-")) days_in_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] if year % 4 == 0 and (year % 100 != 0 or year % 400 == 0): days_in_month[1] = 29 # 闰年2月有29 total_days = sum(days_in_month[:month-1]) + day print(f"{year}{month}月{day}日是这一的第{total_days}。") ``` 代码解释: 1. 首先从键盘输入日期字符串,使用`split`方法将其拆分为、月、日三个整数。 2. 定义一个列表`days_in_month`,存储每个月的数。默认情况下2月有28。 3. 判断输入年份是否为闰年,如果是,则将`days_in_month`列表中2月的数改为29。 4. 计算输入日期是这一的第几,即前面所有月份的数之和加上当前月份的数。 5. 使用`print`函数输出结果。 示例输出: ``` 请输入日期(格式为YYYY-MM-DD):2022-03-15 20223月15日是这一的第74。 ``` ### 回答2: 本题的解决方案需要借助闰年和平的概念,以及通过程序从键盘输入一个日期,并将其分离为、月、日的数字。 首先,根据闰年和平的规则,闰年指的是能够被4整除同时不能被100整除,或者是能够被400整除的年份;平则为不符合这一条件的年份。 其次,要求将从键盘输入的日期拆分为、月、日三个数字,可以使用字符串切片的方法将日期字符串划分为子字符串,然后通过类型转换将其转换为整型数值。例如,假设输入的日期格式为YYYY-MM-DD,则可以使用以下代码来分离日期: ``` date_str = input("请输入日期,格式为YYYY-MM-DD:") year = int(date_str[:4]) month = int(date_str[5:7]) day = int(date_str[8:]) ``` 最后,根据每个月的数以及闰平的规则,可以编写程序计算出该日期是这一的第几计算公式为: ``` if year % 4 == 0 and year % 100 != 0 or year % 400 == 0: days_per_month = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] else: days_per_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] total_days = sum(days_per_month[:month-1]) + day print("该日期是这一的第{}。".format(total_days)) ``` 在以上代码中,通过判断年份是否为闰年来确定每个月的数列表(days_per_month),然后使用列表切片的方式将该月之前的所有数相加,并加上当月的数,即为该日期是这一的第几。 以上是编写程序从键盘输入一个日期,计算输出该日期是这一的第几的方法介绍和实现代码。 ### 回答3: 编写程序实现从键盘输入一个日期,可以按照以下步骤实现: 1. 首先,提示用户输入一个日期,要求日期格式为“-月-日”,例如“2022-08-01”。 2. 接着,为了提取出日期中的、月和日,可以使用字符串的切割(substring)功能,或者使用正则表达式的匹配(match)功能。具体实现方法取决于编程语言。 3. 提取出、月和日之后,可以通过以下公式计算出该日期是这一的第几: ``` day_of_year = day + sum(days_in_month[1:month-1]) ``` 其中,`day`表示日期中的日,`month`表示日期中的月,`days_in_month`是一个列表,用于存储每个月份的数。例如,对于平,`days_in_month=[31,28,31,30,31,30,31,31,30,31,30,31]`。 4. 最后,输出计算得到的结果,即该日期是这一的第几。 需要注意的是,对于闰年,二月份的数为29。因此,需要根据闰年判断的规则,确定该是否是闰年。通常,闰年的判断规则如下: 1. 能被4整除但不能被100整除的年份闰年,如2004就是闰年,1900不是闰年。 2. 能被400整除的年份也是闰年,如2000闰年

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值