1、怎么查出通过 from xx import xx导⼊的可以直接调⽤的⽅法?
可以用一个dir()
来返回这个包中含有的方法。例如:
>>> import math
>>> dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
2、了解Collection模块,编写程序以查询给定列表中最常见的元素。
题目说明:
输入:language = [‘PHP’, ‘PHP’, ‘Python’, ‘PHP’, ‘Python’, ‘JS’, ‘Python’, ‘Python’,‘PHP’, ‘Python’]
输出:Python
from collections import Counter
language = ['PHP', 'PHP', 'Python', 'PHP', 'Python', 'JS', 'Python', 'Python','PHP', 'Python']
def most_element(language):
cnt=Counter()
for lg in language :
cnt[lg]+=1
return sorted(list(cnt.items()), key = lambda x:x[1])[-1][0]
In [2]: most_element(language)
Out[2]: 'Python'
3、假设你获取了用户输入的日期和时间如2020-1-21 9:01:30,以及一个时区信息如UTC+5:00,均是str,请编写一个函数将其转换为timestamp:
题目说明:
"""
Input file
example1: dt_str='2020-6-1 08:10:30', tz_str='UTC+7:00'
example2: dt_str='2020-5-31 16:10:30', tz_str='UTC-09:00'
Output file
result1: 1590973830.0
result2: 1590973830.0
"""
import datetime
from dateutil import tz, zoneinfo
def to_timestamp(dt_str, tz_str):
[year, month, day] = [int(i) for i in dt_str.split(' ')[0].split('-')]
[hour,mint, sec] = [int(i) for i in dt_str.split(' ')[1].split(':')]
t = datetime.datetime(year=year, month=month, day=day, hour=hour, minute=mint, second=sec, tzinfo = tz.gettz(tz_str))
return t.timestamp()
In [32]: dt_str='2020-6-1 08:10:30'
...: tz_str='UTC+7:00'
...: to_timestamp(dt_str, tz_str)
Out[32]: 1590973830.0
In [33]: dt_str='2020-5-31 16:10:30'
...: tz_str='UTC-09:00'
...: to_timestamp(dt_str, tz_str)
Out[33]: 1590973830.0
4、编写Python程序以选择指定年份的所有星期日。
题目说明:
"""
Input file
2020
Output file
2020-01-05
2020-01-12
2020-01-19
2020-01-26
2020-02-02
-----
2020-12-06
2020-12-13
2020-12-20
2020-12-27
"""
import datetime
def all_sundays(year):
init_date = datetime.date(int(year),1,1)
w1 = init_date.isoweekday()
delta_day = 7 - w1
first7 = init_date + datetime.timedelta(days = delta_day)
while first7.year<year+1:
print(first7)
first7 = first7 + datetime.timedelta(days = 7)
In [44]: all_sundays(2020)
2020-01-05
2020-01-12
2020-01-19
2020-01-26
2020-02-02
2020-02-09
2020-02-16
2020-02-23
2020-03-01
2020-03-08
2020-03-15
2020-03-22
2020-03-29
2020-04-05
2020-04-12
2020-04-19
2020-04-26
2020-05-03
2020-05-10
2020-05-17
2020-05-24
2020-05-31
2020-06-07
2020-06-14
2020-06-21
2020-06-28
2020-07-05
2020-07-12
2020-07-19
2020-07-26
2020-08-02
2020-08-09
2020-08-16
2020-08-23
2020-08-30
2020-09-06
2020-09-13
2020-09-20
2020-09-27
2020-10-04
2020-10-11
2020-10-18
2020-10-25
2020-11-01
2020-11-08
2020-11-15
2020-11-22
2020-11-29
2020-12-06
2020-12-13
2020-12-20
2020-12-27
学到了的点:
1、调用python已有的模块的几种方法
import module | 使用方法:module.function() |
---|---|
import module as m(自己起的一个名字) | 使用方法: m.function() |
from module import ** | 使用方法:从模块中只调用**方法 |
from module import * | 使用方法:从模块中调用全部可用的方法函数等 |
最后一个方法不推荐,因为可能会导致很多函数名重复,造成混乱
2、 自己写的一个py文件也可以这样调用啦,通过 文件名.类,或者 .函数
好处是可以在一个py文件里定义多个函数。
比matlab好的地方是matlab一个m文件只能定义一个可以被调用的函数,写的多个函数只能是被第一个函数所用的子函数。
3、if __name__ == '__main__'
如果我要在py文件里人为定义一个main(),为了避免mian()运行时运行被调用的py文件的main(),需要加这一行。要是我不定义,好像就没有啥必要了吧
边查资料边用这个东西,真的好难。但是感觉没有什么可以写的东西,笔记写起来太零碎了。
总的来说就是一个处理时间的一个模块。可以对时间进行定义,解析,运算,判断是周几。
也可以获取当前时间,这个和time模块好像有点相似。
具体的用法就不堆笔记啦。
贴几个学习的时候的链接
datetime
dateutil模块
关于时区转换的