鱼C论坛

 找回密码
 立即注册
楼主: 新手·ing

[技术交流] Python:每日一题 4

[复制链接]
发表于 2018-6-7 11:01:40 | 显示全部楼层
year=int(input("请输入年份:"))
month=int(input("请输入月份:"))
day=int(input("请输入日"))
days=[31,28,31,30,31,30,31,31,30,31,30,31]
sum=0
for i in range(0,month-1):
    sum=sum+days[i]
if year%400==0 or (year%4==0 and year%100!=0) and month>2:
    sum=sum+day+1
else :
    sum=sum+day
print("这一天是第%s年的第%s天!"%(year,sum))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-27 11:50:19 | 显示全部楼层
def fun_1(month,days):
    month_days = [31,28,31,30,31,30,31,31,30,31,30,31]
    result = 0
    for i in range(12):
        month = month - 1
        result = result+month_days[i]
        if month == 0:
            break
    result = result + days

    return result

print("请输入日期(年月日),年月日用回车隔开")
year = int(input())
month = int(input())
days = int(input())
if (year%4 == 0 and year%100 != 0) or (year%400 == 0):   #判断是闰年
    month_days[1] = 29
result = fun_1(month,days)
print("这是第",result,"天")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-17 15:47:37 | 显示全部楼层
Y = int(input("请输入年份:"))
M = int(input("请输入月份:"))
D = int(input("请输入日期:"))
t = (M-1)*31-M//2-2+D
if Y % 4 == 0 and Y % 100 != 0 or Y % 400 == 0:
    t += 1
if M <= 2:
    t=(M-1)*31+D
print("这一天是这一年的第",t,"天。",sep="")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-19 19:38:58 | 显示全部楼层
又长又臭
  1. year = int(input("请输入某年:"))
  2. month = int(input("请输入某月:"))
  3. day = int(input("请输入某日:"))
  4. run = [31,29,31,30,31,30,31,31,30,31,30,31]
  5. ping = [31,28,31,30,31,30,31,31,30,31,30,31]
  6. d = 0
  7. i = 0
  8. if ((year%4 ==0) and (year%100 !=0)) or year%400 ==0:
  9.     for i in range(month-1):
  10.         d += run[i]
  11.         i +=1
  12.     d = d+day
  13.     print("%d年%d月%d日是%d年中的第%d天!"%(year,month,day,year,d))
  14. else:
  15.     for i in range(month-1):
  16.         d +=ping[i]
  17.         i +=1
  18.     d = d+day
  19.     print("%d年%d月%d日是%d年中的第%d天!" % (year, month, day, year, d))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-1 12:02:18 | 显示全部楼层
year = int(input('請輸入西元年份:'))
month = int(input('請輸入月份:'))
day = int(input('請輸入日:'))

common_year = [0 , 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31]
leap_year = [0 , 31 , 29 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31]
days = 0

if (year % 4 == 0 and year % 100 != 0) or year %400 == 0:
    while month:
        days += leap_year[month-1]
        month -= 1
else:
    while month:
        days += common_year[month-1]
        month -= 1

answer = day + days
print(answer)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-5 10:43:26 | 显示全部楼层

如果我输入的天数高于31天,你的程序仍然会照常执行,但是这并不符合正常的逻辑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-7 22:39:46 | 显示全部楼层

献丑

本帖最后由 澄绿哥 于 2018-8-7 22:58 编辑

献丑了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-9 21:41:18 | 显示全部楼层
可以这么玩

  1. import datetime as dt
  2. temp1 = int(input('year: '))
  3. temp2 = int(input('month: '))
  4. temp3 = int(input('day: '))
  5. x = dt.datetime(temp1,temp2,temp3)-dt.datetime(temp1-1,12,31)
  6. print (x)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-9 22:20:45 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-12 14:04:05 | 显示全部楼层
  1. def date(x, y, z):
  2.     list1 = [31,29,31,30,31,30,31,31,30,31,30,31]
  3.     list2 = [31,28,31,30,31,30,31,31,30,31,30,31]
  4.     if (x % 4 == 0) and (x % 100 != 0):
  5.         L =list1
  6.     elif x % 400 == 0:
  7.         L =list1
  8.     else:
  9.         L =list2
  10.     list3 = L[0:y-1]
  11.     n = z + sum(list3)
  12.     return n
  13. x = int(input('input year:'))
  14. y = int(input('input month:'))
  15. z = int(input('input day:'))
  16. print date(x, y, z)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-21 22:31:17 | 显示全部楼层
  1. year=int(input('input year:'))
  2. month=int(input('input month:'))
  3. day=int(input('input day:'))
  4. Setmonth = [0,31,28,31,30,31,30,31,31,30,31,30,31]
  5. sum=0

  6. if year%4 ==0 and year%100 !=0 and year%400 ==0:
  7.     for i in range(1, month):
  8.         sum = sum + Setmonth[i]
  9.     print('This is No.:',sum+day,'day')
  10. else:
  11.     for i in range(1, month):
  12.         sum = sum + Setmonth[i]
  13.     print('This is No.:',sum+day,'day')
复制代码


终于憋出来了。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-23 14:33:57 | 显示全部楼层
本帖最后由 acgods 于 2018-8-23 15:13 编辑
  1. year = int(input("请输入年:"))
  2. month = int(input("请输入月:"))
  3. day = int(input("请输入日:"))

  4. def dayCount(year,month,day):
  5.     if ((year % 4 == 0) and (year % 100 !=0)) or (year % 400 == 0):
  6.         februrayDays = 29
  7.     else:
  8.         februrayDays = 28
  9.     list1 = [31,februrayDays,31,30,31,30,31,31,30,31,30,31]
  10.     dayCount = 0      
  11.     for i in range(1,month):
  12.         dayCount += list1[i-1]
  13.     dayCount += day
  14.     return dayCount

  15. print("您输入的日期是今年的第%d天" % dayCount(year,month,day))
复制代码




修改后的代码

  1. import datetime

  2. year = int(input("请输入年:"))
  3. month = int(input("请输入月:"))
  4. day = int(input("请输入日:"))
  5. days = datetime.date(year,month,day) - datetime.date(year-1,12,31)
  6. days1 = int(days.days)
  7. print("您输入的日期是今年的第%d天" % days1)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-27 21:37:09 | 显示全部楼层
版主高明,继续学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-14 17:09:25 | 显示全部楼层
print('请根据提示输入要查询的日期')
a = int(input('请输入年:'))
b = int(input('请输入月:'))
c = int(input('请输入日:'))
day = [0,31,59,90,120,151,181,212,243,273,304,334]
for n in range(1, b):
    if(((a % 4 == 0 and a % 100 != 0) or a % 400 == 0) and b>2):
        result = day[n] + c + 1
    else:
        result =day[n] + c
print('您输入的日期是今年的第%d天' % result)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-18 19:58:00 | 显示全部楼层
time = (input('请输入年月日:'))
#time = '2018,2,3'
mothlsit = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]
year = int(time.split(',')[0])
moth = int(time.split(',')[1])
day =  int(time.split(',')[2])

if moth in range(1, 13) :
    for i in range(1, moth) :
        day = day + mothlsit[i]   

else:
    print('请输入1-12月')
   
if year % 400 == 0 or year % 4 == 0 and year % 100  != 0 :
    print('该年是闰年')   #二月 29天
    print(day)
else :
   
    print('改年是平年')#二月 28天
    if moth > 2 :
        print(day-1)
    else :
        print(day)

练习下,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-18 19:59:31 | 显示全部楼层
Hxiaoping 发表于 2018-9-18 19:58
time = (input('请输入年月日:'))
#time = '2018,2,3'
mothlsit = [0, 31, 28, 31, 30, 31, 30, 31, 31, ...

思路比较清晰,代码不复杂,很容易看懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-11 10:28:07 | 显示全部楼层
dict1={1:31,2:28,3:31,4:30,5:31,6:30,7:31,8:10,9:30,10:31,11:30,12:31}
days=0
def judgment_year(year):
    if (year % 4) == 0:
        if (year % 100) == 0:
            if (year % 400) == 0:
                return True
            else:
                return False
        else:
            return True
    else:
        return False


year=int(input('请您输入年份:'))

if judgment_year(year):
    mouth=int(input('请您输入月份:'))
    if mouth > 2:
        day=int(input('请您输入%d月几号' % mouth))
        for i in range(1,mouth):
            days += dict1[i]
        print(days+day+1)
    else:
        day=int(input('请您输入%d月几号' % mouth))
        for i in range(1,mouth):
            days += dict1[i]
        print(days+day)
   
else:
    mouth=int(input('请您输入月份:'))
    day=int(input('请您输入%d月几号' % mouth))
    for i in range(1,mouth):
        days += dict1[i]
    print(days+day)
   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-15 22:26:30 | 显示全部楼层

赞,初学者学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-15 22:35:28 | 显示全部楼层
感觉我写的不咋样!
  1. daylist = [31,28,31,30,31,30,31,31,30,31,30,31]

  2. year = int(input("请输入年:"))
  3. mouth = int(input("请输入月:"))
  4. day = int(input("请输入天:"))
  5. dayth = 0

  6. if mouth == 1 :
  7.     print(dayth + day)
  8. else:

  9.     if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
  10.         daylist2 = daylist
  11.         daylist2[1] = 29
  12.         for index in range(1,mouth):
  13.             dayth =dayth + daylist2[index-1]
  14.         print(dayth +day)
  15.     else:
  16.         for index in range(1,mouth):
  17.             dayth =dayth + daylist[index-1]
  18.         print(dayth + day)
复制代码


看了各位鱼油的代码! 学习了
1.datetime 计算日期之差
2.list Unpacking操作和 list的牛百写法  year, month, day = [int(x) for x in input('input year/month/day: ').split('/')]
3.拆分功能点,尽量联系函数和类的使用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-18 15:50:09 | 显示全部楼层
import math
your_birthday1=int(input('您出生的月份:'))
your_birthday2=int(input('您出生的日子:'))
d=0
month_days=[31,28,31,30,31,30,31,31,30,31,30,31]

for i in range(your_birthday1-1):
    d+=month_days[i]
    day=d+your_birthday2

print('生日是第{}天。'.format(day))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 01:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表