37 isinstance
判断object是否为classinfo的实例,是返回true
>>> class Student():
def __init__(self,id,name):
self.id = id
self.name = name
>>> xiaoming = Student('001','xiaoming')
>>> isinstance(xiaoming,Student)
True
38 父子关系鉴定
>>> class Student():
def __init__(self,id,name):
self.id = id
self.name = name
>>> class Undergraduate(Student):
pass
# 判断 Undergraduate 类是否为 Student 的子类
>>> issubclass(Undergraduate,Student)
True
第二个参数可为元组:
>>> issubclass(int,(int,float))
True
39 所有对象之根
object 是所有类的基类
>>> isinstance(1,object)
True
>>> isinstance([],object)
True
40 一键查看对象所有方法
不带参数时返回当前范围内的变量、方法和定义的类型列表;带参数时返回参数的属性,方法列表。
>>> class Student():
def __init__(self,id,name):
self.id = id
self.name = name
>>> xiaoming = Student('001','xiaoming')
>>> dir(xiaoming)
['__call__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'id', 'name']
41 枚举对象
Python 的枚举对象
>>> s = ["a","b","c"]
>>> for i,v in enumerate(s):
print(i,v)
0 a
1 b
2 c
42 创建迭代器
>>> class TestIter():
def __init__(self,lst):
self.lst = lst
# 重写可迭代协议__iter__
def __iter__(self):
print('__iter__ is called')
return iter(self.lst)
迭代 TestIter 类:
>>> t = TestIter()
>>> t = TestIter([1,3,5,7,9])
>>> for e in t:
print(e)
__iter__ is called
1
3
5
7
9
43 创建range迭代器
-
range(stop)
-
range(start, stop[,step])
生成一个不可变序列的迭代器:
>>> t = range(11)
>>> t = range(0,11,2)
>>> for e in t:
print(e)
0
2
4
6
8
10
44 反向
>>> rev = reversed([1,4,2,3,1])
>>> for i in rev:
print(i)
1
3
2
4
1
45 打包
聚合各个可迭代对象的迭代器:
>>> x = [3,2,1]
>>> y = [4,5,6]
>>> list(zip(y,x))
[(4, 3), (5, 2), (6, 1)]
>>> for i,j in zip(y,x):
print(i,j)
4 3
5 2
6 1
46 过滤器
函数通过 lambda 表达式设定过滤条件,保留 lambda 表达式为True的元素:
>>> fil = filter(lambda x: x>10,[1,11,2,45,7,6,13])
>>> for e in fil:
print(e)
11
45
13
47 链式比较
>>> i = 3
>>> 1 < i < 3
False
>>> 1 < i <=3
True
48 链式操作
>>> from operator import (add, sub)
>>> def add_or_sub(a, b, oper):
return (add if oper == '+' else sub)(a, b)
>>> add_or_sub(1, 2, '-')
-1
49 split 分割**
>>> 'i love python'.split(' ')
['i', 'love', 'python']
50 replace 替换
>>> 'i\tlove\tpython'.replace('\t',',')
'i,love,python'
51 反转字符串
>>> st="python"
>>> ''.join(reversed(st))
'nohtyp'

52 使用time模块打印当前时间
# 导入time模块
>>> import time
# 打印当前时间,返回浮点数
>>> seconds = time.time()
>>> seconds
1588858156.6146255
53 浮点数转时间结构体
# 浮点数转时间结构体
>>> local_time = time.localtime(seconds)
>>> local_time
time.struct_time(tm_year=2020, tm_mon=5, tm_mday=7, tm_hour=21, tm_min=29, tm_sec=16, tm_wday=3, tm_yday=128, tm_isdst=0)
-
tm_year: 年
-
tm_mon: 月
-
tm_mday: 日
-
tm_hour: 小时
-
tm_min:分
-
tm_sec: 分
-
tm_sec: 秒
-
tm_wday: 一周中索引([0,6], 周一的索引:0)
-
tm_yday: 一年中索引([1,366])
-
tm_isdst: 1 if summer time is in effect, 0 if not, and -1 if unknown
54 时间结构体转时间字符串
# 时间结构体转时间字符串
>>> str_time = time.asctime(local_time)
>>> str_time
'Thu May 7 21:29:16 2020'
55 时间结构体转指定格式时间字符串
# 时间结构体转指定格式的时间字符串
>>> format_time = time.strftime('%Y.%m.%d %H:%M:%S',local_time)
>>> format_time
'2020.05.07 21:29:16'
56 时间字符串转时间结构体
# 时间字符串转时间结构体
>>> time.strptime(format_time,'%Y.%m.%d %H:%M:%S')
time.struct_time(tm_year=2020, tm_mon=5, tm_mday=7, tm_hour=21, tm_min=29, tm_sec=16, tm_wday=3, tm_yday=128, tm_isdst=-1)
57 年的日历图
>>> import calendar
>>> from datetime import date
>>> mydate=date.today()
>>> calendar.calendar(2020)
结果:
2020
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 1 2 1
6 7 8 9 10 11 12 3 4 5 6 7 8 9 2 3 4 5 6 7 8
13 14 15 16 17 18 19 10 11 12 13 14 15 16 9 10 11 12 13 14 15
20 21 22 23 24 25 26 17 18 19 20 21 22 23 16 17 18 19 20 21 22
27 28 29 30 31 24 25 26 27 28 29 23 24 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 1 2 3 1 2 3 4 5 6 7
6 7 8 9 10 11 12 4 5 6 7 8 9 10 8 9 10 11 12 13 14
13 14 15 16 17 18 19 11 12 13 14 15 16 17 15 16 17 18 19 20 21
20 21 22 23 24 25 26 18 19 20 21 22 23 24 22 23 24 25 26 27 28
27 28 29 30 25 26 27 28 29 30 31 29 30
July August September
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 1 2 1 2 3 4 5 6
6 7 8 9 10 11 12 3 4 5 6 7 8 9 7 8 9 10 11 12 13
13 14 15 16 17 18 19 10 11 12 13 14 15 16 14 15 16 17 18 19 20
20 21 22 23 24 25 26 17 18 19 20 21 22 23 21 22 23 24 25 26 27
27 28 29 30 31 24 25 26 27 28 29 30 28 29 30
31
October November December
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 1 1 2 3 4 5 6
5 6 7 8 9 10 11 2 3 4 5 6 7 8 7 8 9 10 11 12 13
12 13 14 15 16 17 18 9 10 11 12 13 14 15 14 15 16 17 18 19 20
19 20 21 22 23 24 25 16 17 18 19 20 21 22 21 22 23 24 25 26 27
26 27 28 29 30 31 23 24 25 26 27 28 29 28 29 30 31
30
58 月的日历图
>>> import calendar
>>> from datetime import date
>>> mydate = date.today()
>>> calendar.month(mydate.year, mydate.month)
结果:
May 2020
Mo Tu We Th Fr Sa Su
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
59 判断是否为闰年
>>> import calendar
>>> from datetime import date
>>> mydate = date.today()
>>> is_leap = calendar.isleap(mydate.year)
>>> ("{}是闰年" if is_leap else "{}不是闰年\n").format(mydate.year)
'2020是闰年'
60 with 读写文件
读文件:
>> import os
>>> os.chdir('D:/source/dataset')
>>> os.listdir()
['drinksbycountry.csv', 'IMDB-Movie-Data.csv', 'movietweetings', 'test.csv', 'titanic_eda_data.csv', 'titanic_train_data.csv', 'train.csv']
# 读文件
>>> with open('drinksbycountry.csv',mode='r',encoding='utf-8') as f:
o = f.read()
print(o)
写文件:
# 写文件
>>> with open('new_file.txt',mode='w',encoding='utf-8') as f:
w = f.write('I love python\n It\'s so simple')
os.listdir()
['drinksbycountry.csv', 'IMDB-Movie-Data.csv', 'movietweetings', 'new_file.txt', 'test.csv', 'titanic_eda_data.csv', 'titanic_train_data.csv', 'train.csv']
>>> with open('new_file.txt',mode='r',encoding='utf-8') as f:
o = f.read()
print(o)
I love python
It's so simple