|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 fengjianyx 于 2022-3-20 19:23 编辑
新人初学,尝试练习基础代码:
for语句理解不透彻,导致方案一的错误,
求各位大佬讲解一下,具体应该怎么去考虑for循环后的输出值对齐?
代码如下:方案一结果错的,方案二调整print缩进就好了
【题目】计算某个日期是这一年的第几天,
【方案一】运行到最后结果是多行的
- #判断日期是第几天
- str1 = str(input("请输入一个日期,格式为2020/12/22\n"))
- year = int(str1[0:4])
- month = int(str1[5:7])
- day = int(str1[8:10])
- #定义月份的天数
- list=[31,28,31,30,31,30,31,31,30,31,30,31]
- #先判断是否平年闰年,用于判断2月份天数
- if (year % 4) == 0 and (year % 100) != 0 or (year % 400) == 0:
- list[1] = 29
- else:
- list[1] = 28
- #for语句控制月份的循环
- for i in range(1,month):
- if month == 1:
- print(day)
- break
- day+=list[i] #
- print(day)
复制代码
结果为:
请输入一个日期,格式为2020/12/22
2022.12.31
59
90
120
151
181
212
243
273
304
334
365
【方案二】经过调整print对齐至for后又正常如下:
- #判断日期是第几天
- str1 = str(input("请输入一个日期,格式为2020/12/22\n"))
- year = int(str1[0:4])
- month = int(str1[5:7])
- day = int(str1[8:10])
- #定义月份的天数
- list=[31,28,31,30,31,30,31,31,30,31,30,31]
- #先判断是否平年闰年,用于判断2月份天数
- if (year % 4) == 0 and (year % 100) != 0 or (year % 400) == 0:
- list[1] = 29
- else:
- list[1] = 28
- #for语句控制月份的循环
- for i in range(1,month):
- if month == 1:
- print(day)
- break
- day+=list[i] #
- print (str1,"是{}年的第{}天".format(year,day))
复制代码
结果准确了:
请输入一个日期,格式为2020/12/22
2022.12.31 是2022年的第365天 |
|