1. # ===================第三章:数字日期和时间====================
  2.  
  3. # ---------------------数字的四舍五入--------------------------
    # 对于简单的舍入运算,使用内置的round(value, ndigits) 函数
    # 当一个值刚好在两个边界的中间的时候, round 函数返回离它最近的偶数。也就是说,对1.5 或者2.5 的舍入运算都会得到2
    # 如果只是简单的输出一定宽度的数,不需要使用round() 函数
    x = 1.23456
    print(round(x, 3))
    print(format(x, '0.3f'))
  4.  
  5. # ---------------------执行精确的浮点数运算---------------------
    # 如果想更加精确(并能容忍一定的性能损耗),可以使用decimal 模块
    from decimal import Decimal
    a = Decimal('4.2')
    b = Decimal('2.1')
    print(a + b)
  6.  
  7. # ----------------------分数运算-----------------------------
    # fractions 模块可以被用来执行包含分数的数学运算
    from fractions import Fraction
    a = Fraction(5, 4)
    b = Fraction(7, 16)
    print(a + b)
  8.  
  9. # ----------------------大型数组运算--------------------------
    # 涉及到数组的重量级运算操作,可以使用NumPy 库。NumPy 的一个主要特征是它会给Python 提供一个数组对象
    import numpy as np
    ax = np.array([1, 2, 3, 4])
    by = np.array([5, 6, 7, 8])
    print(ax * 2)
    print(ax + 10)
    print(ax + by)
    print(ax * by)
  10.  
  11. # ----------------------随机选择-------------------------
    # random 模块有大量的函数用来产生随机数和随机选择元素
    # 从一个序列中随机的抽取一个元素,可以使用random.choice()
    import random
    values = [1, 2, 3, 4, 5, 6]
    print(random.choice(values))
    # 为了提取出N 个不同元素的样本用来做进一步的操作,可以使用random.sample()
    print(random.sample(values, 3))
    # 如果只是想打乱序列中元素的顺序,可以使用random.shuffle()
    random.shuffle(values)
    print(values)
    # 生成随机整数,请使用random.randint()
    num = random.randint(0, 10)
    print(num)
    # 为了生成0 到1 范围内均匀分布的浮点数,使用random.random()
    one = random.random()
    print(one)
    # 获取N 位随机位(二进制) 的整数,使用random.getrandbits()
    two = random.getrandbits(30)
    print(two)
  12.  
  13. # ==============基本的日期和时间转换==================
    # 为了执行不同时间单位的转换和计算,请使用datetime 模块
    from datetime import timedelta
    a = timedelta(days=3, hours=6)
    b = timedelta(days=2)
    print(a-b)
    from datetime import datetime
    # 表示指定的日期和时间
    a = datetime(2019, 2, 9)
    print(a + timedelta(days=20))
    # 需要执行更加复杂的日期操作,比如处理时区,模糊时间范围,节假日计算等等,可以考虑使用dateutil 模块
    from dateutil.relativedelta import relativedelta
    d = datetime.now()
    print(d)
    print(d - relativedelta(days=-1))
  14.  
  15. # --------------计算当前月份的日期范围--------------------
    from datetime import datetime, date, timedelta
    import calendar
    def get_month_range(start_date=None):
    if start_date is None:
    start_date = date.today().replace(day=1)
    _, days_in_month = calendar.monthrange(start_date.year, start_date.month)
    end_date = start_date + timedelta(days=days_in_month)
    return (start_date, end_date)
    print(get_month_range())
  16.  
  17. # -----------------------字符串转换为日期-------------------------
    from datetime import datetime
  18.  
  19. text = '2012:09:20'
    y = datetime.strptime(text, '%Y:%m:%d')
    print(y)
    print(datetime.now())
    # 需要注意的是, strptime() 的性能较差
    # 自定义解析函数
    def parse_ymd(s):
    year_s, mon_s, dat_s = s.split('-')
    return datetime(int(year_s), int(mon_s), int(dat_s))
    print(parse_ymd('2011-11-11'))
  20.  
  21. # --------------------结合时区的日期操作-----------------------
    # 对几乎所有涉及到时区的问题,应该使用pytz 模块
    # pytz 模块一个主要用途是将datetime 库创建的简单日期对象本地化
    from datetime import datetime
    from pytz import timezone
    d = datetime(2018, 2, 8, 9, 30, 0)
    print(d)
    central = timezone('US/Central')
    loc_d = central.localize(d)
    print(loc_d)

Python--进阶处理3的更多相关文章

  1. Python进阶:函数式编程实例(附代码)

    Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...

  2. Python进阶 - 对象,名字以及绑定

    Python进阶 - 对象,名字以及绑定 1.一切皆对象 Python哲学: Python中一切皆对象 1.1 数据模型-对象,值以及类型 对象是Python对数据的抽象.Python程序中所有的数据 ...

  3. Python进阶-继承中的MRO与super

    Python进阶-继承中的MRO与super 写在前面 如非特别说明,下文均基于Python3 摘要 本文讲述Python继承关系中如何通过super()调用"父类"方法,supe ...

  4. Python进阶 - 命名空间与作用域

    Python进阶 - 命名空间与作用域 写在前面 如非特别说明,下文均基于Python3 命名空间与作用于跟名字的绑定相关性很大,可以结合另一篇介绍Python名字.对象及其绑定的文章. 1. 命名空 ...

  5. python进阶学习笔记(一)

    python进阶部分要学习的内容: 学习目标: 1.函数式编程 1.1,什么是函数式编程 函数式编程是一种抽象计算的编程模式 不同语言的抽象层次不同: 函数式编程的特点: python支持的函数式编程 ...

  6. 【python进阶】详解元类及其应用2

    前言 在上一篇文章[python进阶]详解元类及其应用1中,我们提到了关于元类的一些前置知识,介绍了类对象,动态创建类,使用type创建类,这一节我们将继续接着上文来讲~~~ 5.使⽤type创建带有 ...

  7. 【python进阶】Garbage collection垃圾回收2

    前言 在上一篇文章[python进阶]Garbage collection垃圾回收1,我们讲述了Garbage collection(GC垃圾回收),画说Ruby与Python垃圾回收,Python中 ...

  8. Python进阶 函数式编程和面向对象编程等

    函数式编程 函数:function 函数式:functional,一种编程范式.函数式编程是一种抽象计算机的编程模式. 函数!= 函数式(如计算!=计算机) 如下是不同语言的抽象 层次不同 高阶函数: ...

  9. 【python进阶】深入理解系统进程2

    前言 在上一篇[python进阶]深入理解系统进程1中,我们讲述了多任务的一些概念,多进程的创建,fork等一些问题,这一节我们继续接着讲述系统进程的一些方法及注意点 multiprocessing ...

  10. Python进阶:如何将字符串常量转化为变量?

    前几天,我们Python猫交流学习群 里的 M 同学提了个问题.这个问题挺有意思,经初次讨论,我们认为它无解. 然而,我认为它很有价值,应该继续思考怎么解决,所以就在私密的知识星球上记录了下来. 万万 ...

随机推荐

  1. CodeMirror与jquery UI-Tabs混合使用 注意事项

    第一步:.将代码高亮渲染 第二步:jquery Tab输出: 第三步:点击Tab切换时,将代码块刷新: 参考:http://jtmorris.net/2013/06/codemirror-editor ...

  2. nexus 配置

    1.下载 http://www.sonatype.org/nexus/go/  例如:nexus-2.11.4-01-bundle.tar.gz 2.解压 tar -xzvf nexus-2.11.4 ...

  3. 大数据学习之Scala中main函数的分析以及基本规则(2)

    一.main函数的分析 首先来看我们在上一节最后看到的这个程序,我们先来简单的分析一下.有助于后面的学习 object HelloScala { def main(args: Array[String ...

  4. vim在vps内的终端内支持molokai

    vps的终端内默认的颜色数好像很低.对molokai的支持一直不好. 后查找后得知:vim终端方式默认为16色,而molokai为256配色方案 我以为这是硬件问题,没有解决办法,一直到有一天,我在配 ...

  5. atitit.提升兼容性最佳实践 o9o

    atitit.提升兼容性最佳实践 o9o.doc 1. Atitit.兼容性的"一加三"策略 1 2. 扩展表模式 1 3. 同时运行模式 1 3.1. 完美的后向兼容性 2 3. ...

  6. 在iOS App中增加完整的照片多选功能

    转自:http://blog.csdn.net/jasonblog/article/details/8141850 主要参考了ELCImagePickerController,不过由于UI展现上需要定 ...

  7. Flume 中文入门手冊

    原文:https://cwiki.apache.org/confluence/display/FLUME/Getting+Started 什么是 Flume NG? Flume NG 旨在比起 Flu ...

  8. C++中explicit的用法

    https://blog.csdn.net/qq_35524916/article/details/58178072 https://blog.csdn.net/jinjin1062495199/ar ...

  9. Centos Java 从1.7升级为1.8

    查看安装的sdk版本 yum list installed |grep java 卸载JDK相关文件输入和tzdata-java输入 yum -y remove java-1.7.0-openjdk* ...

  10. 每日英语:China Targets Big Pharma

    China unveiled a litany of bribery and misconduct allegations against GlaxoSmithKline GSK.LN -0.26% ...