2020-09-28 Python 学习心得(模块)

1.1 模块

模块就是后缀名是 .py。模块可以被别的函数调用。

1.2 命名空间

1.2.1 内置命名空间 :程序运行就存在。

1.2.2 全局命名空间:每个模块有自己所拥有的全局命名空间,不同模块的全局命名空间彼此相互独立。

1.2.3 本地命名空间:模块中有函数或者类,每个函数或者类所定义的命名空间就是本地命名空间。如果函数返回了结果或者抛出异常,则本地命名空间也结束了。

关系就是 1 > 2 > 3

1.3 导入模块

1.3.1 import 模块
1.3.2 from 模块 import 函数名
1.3.3 import 模块 as 新名字

1.4 if__name__ == ‘main

当.py直接运行是,代码被运行;当被调用时,不运行。

1.5 搜索路径

解释器遇到import 语句,模块在当前的搜索路径中就会被导入。(模块名.path)

1.6 包

管理模块命名空间;文件夹含有__init__.py; 相关模块放在文件夹下。

1.7 习题1

利用help函数查看function。

1.8 习题2

难点就是利用Counter模块计算值出现的次数。
"""
Input file
language = ['PHP', 'PHP', 'Python', 'PHP', 'Python', 'JS', 'Python', 'Python','PHP', 'Python']
Output file
Python
"""
def most_element(language):
    """ Return a list of lines after inserting a word in a specific line. """

from collections import Counter
def most_element(language):
    """ Return a list of lines after inserting a word in a specific line. """
    m = Counter(language)  #Counter: 用来跟踪值出现的次数。
    for key, value in m.items():
        if (value == max(m.values())):# 寻找值出现最大次数的键值。
            return key

language = ['PHP', 'PHP', 'Python', 'PHP', 'Python', 'JS', 'Python', 'Python', 'PHP', 'Python']
print(most_element(language))

Python

2、 datetime模块

2.1 datetime类
import datetime
dt = datetime.datetime(year=2020, month=9, day=29, hour=16, minute=5, second=00)
print(dt)#输出当前时间
print(dt.timestamp())#输出从197011日为起点到现在的秒数
dt = datetime.datetime.fromtimestamp(1601366700.0)
print(dt)# 将从197011日为起点到现在的秒数,转换为按年月日时分秒的时间
print(type(dt))#打印dt类型
dt = datetime.datetime.now()
print(dt)#打印当前时间
print(type(dt))#打印dt类型

2020-09-29 16:05:00
1601366700.0
2020-09-29 16:05:00
<class 'datetime.datetime'>
2020-09-29 16:05:54.841972
<class 'datetime.datetime'>
import datetime
dt = datetime.datetime(year=2020, month=9, day=29, hour=16, minute=25, second=22)
s = dt.strftime("%Y/%m/%d   %p %H:%M:%S")
print(s)
s = dt.strftime('%d %B %Y %A 第%j天/%U周')
print(s)

2020/09/29   PM 16:25:22
29 September 2020 Tuesday 第273/39

ps:使用PyCharm缺少模块,在B站搜索可以建立阿里云镜像,快速下载。

链接:https://www.bilibili.com/video/BV1E54y1k7fh/

将字符串转为日期
from dateutil import parser
s = '2020-09-29'
dt = parser.parse(s)
print(dt)
print(type(dt))
s = 'Sep 29, 2020, 05:22pm'#这里你可以随便写 不按照顺序的
dt = parser.parse(s)
print(dt)
print(type(dt))

2020-09-29 00:00:00
<class 'datetime.datetime'>
2020-09-29 17:22:00
<class 'datetime.datetime'>
import numpy as np
from dateutil import parser
dateString = ['Oct, 2, 1869', 'Oct, 10, 1869', 'Oct, 15, 1869', 'Oct, 20, 1869', 'Oct, 23, 1869']
dates = [parser.parse(i) for i in dateString]
td = np.diff(dates)
print(td)
d = [i.days for i in td]
print(d)

[datetime.timedelta(days=8) datetime.timedelta(days=5)
 datetime.timedelta(days=5) datetime.timedelta(days=3)]
[8, 5, 5, 3]
2.2 date类
import datetime
d = datetime.date(2020, 9, 28)
print(d)
print(type(d))
d = datetime.date.today()
print(d)
print(type(d))

2020-09-28#昨天的日期
<class 'datetime.date'>
2020-09-29#今天的日期
<class 'datetime.date'>
'时间段内的 星期六 个数'
import datetime
d1 = datetime.date(1868, 4, 4)
d2 = datetime.date(1869, 10, 2)
dt = (d2 - d1).days
print('一共是相差',dt,'天')
print(d1.isoweekday())# 返回1-7,代表周一到周日,当前时间所在本周第几天;
print(dt // 7 + 1)#地板除+1

一共是相差 5466
79
2.3 time类
import datetime
date = datetime.date(2020, 10, 1)
dt = datetime.datetime(date.year, date.month, date.day)
print(dt)
dt = datetime.datetime.combine(date, datetime.time.min)
print(dt)

2020-10-01 00:00:00
2020-10-01 00:00:00
2.4 timedelta类

表示一段时间的时间差

import datetime
td = datetime.timedelta(days=30)
print(td)
print(type(td))
print(datetime.date.today())
print(datetime.date.today() + td)
dt1 = datetime.datetime(2020,  9, 29, 10, 10, 0)
dt2 = datetime.datetime(2019, 10, 29, 10, 10, 0)
td = dt1 - dt2
print(td)
print(type(td))
td1 = datetime.timedelta(days=30)
td2 = datetime.timedelta(weeks=1)
td = td1 - td2
print(td)
print(type(td))

30 days, 0:00:00
<class 'datetime.timedelta'>
2020-09-29
2020-10-29
336 days, 0:00:00
<class 'datetime.timedelta'>
23 days, 0:00:00
<class 'datetime.timedelta'>
import datetime
dt1 = datetime.datetime(1997, 4, 11, 00, 00, 00)
dt2 = datetime.datetime(2020, 9, 29, 00, 00, 00)
dt3 = datetime.datetime(2021, 4, 11, 00, 00, 00)
td = dt2 - dt1
td4 = dt3 - dt2
print("你已经活了",td,"天")
print("距离下个生日还有", td4,"天")
print(td4.total_seconds())

你已经活了 8572 days, 0:00:00 天
距离下个生日还有 194 days, 0:00:0016761600.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值