Python学习笔记task8 -模块

作业

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 模块

学到了的点:
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(),需要加这一行。要是我不定义,好像就没有啥必要了吧

datetime模块

边查资料边用这个东西,真的好难。但是感觉没有什么可以写的东西,笔记写起来太零碎了。
总的来说就是一个处理时间的一个模块。可以对时间进行定义,解析,运算,判断是周几。
也可以获取当前时间,这个和time模块好像有点相似。
具体的用法就不堆笔记啦。
贴几个学习的时候的链接
datetime
dateutil模块
关于时区转换的

你可能感兴趣的:(学习)