AI绘图仅供欣赏
题目
输入某年某月某日,判断这一天是这一年的第几天?
以下仅供参考,欢迎指正,共同探讨。
一、程序
代码如下(示例):
year = int(input('请输入年份:'))
mouth = int(input('请输入月份:'))
day = int(input('请输入日期:'))
mouths = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] # 确定平年每月天数
if year % 400 == 0 or year % 4 == 0: # 闰年判断
mouths[3] = mouths[3] + 1 # 闰年二月多加一天
if 0 < mouth <= 12:
days = 0
for i in range(mouth): # 遍历每月天数
dj = mouths[i]
days = days + dj # 天数相加
day_s = days + day # 定义第几天
print(f'这一天是这一年的第{day_s}天') # 格式化输出
else:
print('输入日期超出范围')
二、结果
代码如下(示例):
请输入年份:2024
请输入月份:3
请输入日期:13
这一天是这一年的第72天
总结
本题注重分析,需要分析平年与闰年,平年每月各有几天为常识,不做累述。闰年是如何判断的?闰年是可以被400或被4整除的数(% 400 == 0 or % 4 == 0),闰年二月需要加1天,起始天数可以自定义,个人是从0天开始定义。“这一天是这一年的第几天”,个人的理解为输入月的天数+前几个月天数累加,借鉴了思路,想清楚明白就好了。仍然是for循环遍历和if elsif 或 if else 的应用,请到优快云知识树中学习,不做累述。
for i in range
是Python中的一种循环语句,它用于遍历一个整数序列。这个序列可以通过 range
函数生成,该函数可以接受1到3个参数,分别表示起始值、终止值和步长。如果只传入一个参数,则默认为stop参数,循环从0开始,步长为1;如果传入两个参数,则第一个参数为start,第二个参数为stop,循环步长为1;如果传入三个参数,则第一个参数为start,第二个参数为stop,第三个参数为step,循环步长为step。
例如,以下代码可以遍历从0到4的整数序列,并输出每个数的平方:
for i in range(5):
print(i2)
if elsif
和 if else
是两种不同的条件判断语句,它们的主要区别在于是否允许同时处理多个条件以及它们的执行顺序。
if elsif
:
if elsif
语句用于在多个条件中寻找一个满足的条件,然后执行相应的代码块。它可以包含多个 elsif
子句,每个子句都代表一个独立的条件。如果第一个条件不满足,程序将继续尝试下一个 elsif
子句,直到找到一个满足条件的为止。如果所有条件都不满足,那么不会执行任何代码块。
if else
:
if else
语句用于在两个条件中选择一个满足的条件。你需要指定一个 if
条件和一个 else
条件。如果 if
条件满足,则执行第一个代码块;否则,执行 else
代码块。这个语句通常用来实现单分支的选择结构。
总得来说,if elsif
语句适用于需要在多个可能性之间做出选择的场景,而 if else
语句则是用于二选一决策的情况。在实际应用中,应根据需要选择合适的语句来满足编程需求。
例如,以下是一个简单的if elsif循环示例:
if n > 10:
print(n)
elsif n < 10:
print("错误")
elsif n == 10:
print("错误")
例如,以下是一个简单的if else循环示例:
if n > 10:
print(n)
else:
print("错误")