程序控制结构--案例

精彩案例

  • 输入若干个成绩,求所有成绩的平均值分,每输入一个成绩后询问是否继续输入下一个成绩,回答yes就继续输入下一个成绩,回答no就停止输入成绩

    scores = []
    while True:
       x = input('请输入第{0}个成绩:'.format(len(scores)+1))
       try:
           scores.append(float(x))
       except:
           print('非法数据!')
       while True:
           flag = input('继续输入吗?(yes/no)')
           if flag.lower() not in ('yes','no'):
               print('只能输入yes或no')
           else:
               break
       if flag == 'no':
           break
    print('一共输入{0}个成绩,其平均成绩为:{1}'.format(len(scores),sum(scores)/len(scores)))
  • 编写程序,判断今天是今年的第几天

    import time
    date = time.localtime()
    print(date)
    year, month, day = date[:3]
    print(year, month, day)
    day_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):  # 判断是否为闰年
       day_month[1] = 29
    if month == 1:
       print(day)
    else:
       print(sum(day_month[:month-1]) + day)

    Python标准库datetime提供了datetime和timedelta对象可以很方便地计算指定年月日时分秒之前或之后的日期时间,还提供了返回结果中包含“今天是今年第几天”"今天是本周第几天"等答案的timetuple()函数,等待

    import datetime
    from datetime import date
    today = datetime.date.today()
    print(today)
    day = today.timetuple().tm_yday
    today = today.replace(year=2018)
    print(today)
    today = today.replace(month=5)
    print(today)
    today = today.replace(day=26)
    print(today)
    now = datetime.datetime.now()
    print(now)
    now = now.replace(second=39)
    print(now)
    now = now + datetime.timedelta(days=5)
    print(now)
    now = now + datetime.timedelta(weeks=-5)
    print(now)
    # 计算两个日期之间相差多少天
    dif = date(year=2019, month=3, day=3) - date(year=2018, month=9, day=23)
    print(dif.days)

    # 运行结果
    2019-03-03
    2018-03-03
    2018-05-03
    2018-05-26
    2019-03-03 13:14:20.203989
    2019-03-03 13:14:39.203989
    2019-03-08 13:14:39.203989
    2019-02-01 13:14:39.203989
    161

    标准库calendar也提供了一些与日期操作有关的方法

    import calendar
    cal = calendar.calendar(2019)
    print(cal)
    cal_month = calendar.month(2019, 3)
    print(cal_month)
    # 判断是否为闰年
    flag = calendar.isleap(2016)
    print(flag)
    flag = calendar.isleap(2019)
    print(flag)
    # 查看指定日期是周几
    print(calendar.weekday(2019, 3, 3))

    # 执行结果
                                     2019

         January                   February                   March
    Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
       1  2  3  4  5  6                   1  2  3                   1  2  3
    7  8  9 10 11 12 13       4  5  6  7  8  9 10       4  5  6  7  8  9 10
    14 15 16 17 18 19 20      11 12 13 14 15 16 17      11 12 13 14 15 16 17
    21 22 23 24 25 26 27      18 19 20 21 22 23 24      18 19 20 21 22 23 24
    28 29 30 31               25 26 27 28               25 26 27 28 29 30 31

          April                      May                       June
    Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su 1  2  3  4  5  6  7             1  2  3  4  5                      1  2 8  9 10 11 12 13 14       6  7  8  9 10 11 12       3  4  5  6  7  8  915 16 17 18 19 20 21      13 14 15 16 17 18 19      10 11 12 13 14 15 1622 23 24 25 26 27 28      20 21 22 23 24 25 26      17 18 19 20 21 22 2329 30                     27 28 29 30 31            24 25 26 27 28 29 30​        July                     August                  SeptemberMo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su 1  2  3  4  5  6  7                1  2  3  4                         1 8  9 10 11 12 13 14       5  6  7  8  9 10 11       2  3  4  5  6  7  815 16 17 18 19 20 21      12 13 14 15 16 17 18       9 10 11 12 13 14 1522 23 24 25 26 27 28      19 20 21 22 23 24 25      16 17 18 19 20 21 2229 30 31                  26 27 28 29 30 31         23 24 25 26 27 28 29                                                    30​      October                   November                  DecemberMo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su    1  2  3  4  5  6                   1  2  3                         1 7  8  9 10 11 12 13       4  5  6  7  8  9 10       2  3  4  5  6  7  814 15 16 17 18 19 20      11 12 13 14 15 16 17       9 10 11 12 13 14 1521 22 23 24 25 26 27      18 19 20 21 22 23 24      16 17 18 19 20 21 2228 29 30 31               25 26 27 28 29 30         23 24 25 26 27 28 29                                                    30 31​     March 2019Mo Tu We Th Fr Sa Su             1  2  3 4  5  6  7  8  9 1011 12 13 14 15 16 1718 19 20 21 22 23 2425 26 27 28 29 30 31​TrueFalse6

 

猜你喜欢

转载自www.cnblogs.com/zxbdboke/p/10480250.html