python基本数据预处理语法函数(2)
1、字符串格式化方法format的用法:
< ^ > #分别为左对齐、居中、右对齐
'{:>18,.2f}'.format(70305084.0) #:冒号+空白填充+右对齐+固定宽度18+浮点精度.2+浮点数声明f
'{:^10}'.format('test') #返回test居中,共计10个字符
'{1} {0}'.format('one', 'two') #{}中的数字代表排列的顺序
'my name is {name},age is {age}'.format(name='hoho',age=19)
'{0:*>10}'.format(10) # 右对齐
'{0:*<10}'.format(10) ##左对齐,冒号后跟以*作为填充
b_dict = {'name':'chuhao','age':20,'province':'shanxi'}
print ('my name is {name}, age is {age},from {province}'.format(**b_dict)) #通过字典来对句子进行填充
print ('{:>7.2%}'.format(0.2)) #以百分比的形式输出值
i=1 j=2
print('{} shape is {}'.format(i,j)) #返回1 shape is 2
def sayhi(a,b):
print('%s 的后面是 %s' %(a ,b))
sayhi('i','ii')
2、enumerate的用法:
list=['这','是','一个','测试']
for i,item in enumerate(list):
print(i,item)
#输出
0 这
1 是
2 一个
3 测试
3、datetime包
from datetime import datetime, timezone
datetime.today() #返回当天信息
dt=datetime.now() #返回现在的信息
dt.year
dt.hour
dt.minute #返回当前的分钟
dt.second #返回当前的秒
dt.weekday() #返回星期几
4、filter函数
def is_odd(n):
return n % 2 == 1
newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(newlist)
#输出结果:[1, 3, 5, 7, 9] import math
def is_sqr(x):
return math.sqrt(x) % 1 == 0
newlist = filter(is_sqr, range(1, 101))
print(newlist)
#输出结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
5、json模块()
1)json.dumps()
#json.dumps用于将dict类型的数据转换为str,因为如果直接将dict类型的数据写入json文件会报错,所以在写入数据时需要用到该函数
import json
name_emb = {'a':'','b':'','c':'','d':''}
jsObj = json.dumps(name_emb)
print(name_emb)
print(jsObj)
print(type(name_emb))
print(type(jsObj))
###返回结果如下:
{'a': '', 'b': '', 'c': '', 'd': ''}
{"a": "", "b": "", "c": "", "d": ""}
<class 'dict'>
<class 'str'> name_emb = {'a':'','b':'','c':'','d':''}
emb_filename = ('/home/cqh/faceData/emb_json.json')
jsObj = json.dumps(name_emb)
with open(emb_filename, "w") as f:
f.write(jsObj)
f.close()
2)json.loads()
import json
name_emb = {'a':'','b':'','c':'','d':''}
jsDumps = json.dumps(name_emb)
jsLoads = json.loads(jsDumps)
print(name_emb)
print(jsDumps)
print(jsLoads)
print(type(name_emb)) #返回class:dict
print(type(jsDumps)) #返回class:str
print(type(jsLoads)) #返回class:dict
6、self的简单讲解:
self表示类的实例,而非类,以如下代码为例:
class Test:
def prt(self):
print(self)
print(self.__class__)
t=Test()
t.prt()
输出结果为:
<__main__.Test object at 0x000001DCCF2C12E8>
<class '__main__.Test'>
由结果可以发现,self代表类的实例,self.__class__指向类。
在解释器内部,t.qrt()等价于Test.prt(Test())
在继承的时候,继承的是传入的实例,而非定义了self的类的实例。以如下为例:
class Parent:
def pprt(self):
print(self) class Child(Parent):
def cprt(self):
print(self)
c = Child()
c.cprt()
c.pprt()
p = Parent()
p.pprt()
在运行c.pprt()的时候,由于self指得是Child类的实例,self中未定义pprt()的方法,所以沿着继承树网上找,找到了父类Parent中定义的pprt()方法,所以成功调用。
在如下例子中,self指的是描述符类的实例:
class Desc:
def __get__(self, ins, cls):
print('self in Desc: %s ' % self )
print(self, ins, cls)
class Test:
x = Desc()
def prt(self):
print('self in Test: %s' % self)
t = Test()
t.prt()
t.x
这里调用的是t.x,也就是Test类的实例t的属性x,由于实例t中并没有定义属性x,所以找到了类属性x。该属性是描述符属性,为Desc类的实例,所以这里就没有用Test的任何方法。若直接运行Test.x也能得到相同的结果。
另一个实例:
class person:
def __init__(self,name,job=None,pay=10):
self.name=name
self.job=job
self.pay=pay
def getLastName(cls):
return cls.name.split('a')[-1]
def getRaise(self,percent):
self.pay=(int)(self.pay*(1+percent))
return self.pay
p=person('xiaoming','jixie') #用于实例化一个对象
p.getLastName()
p.getRaise(0.8)
在这里self指的是被实例化的对象p,需要调用当前的方法或者属性时,直接使用self.来进行调用就可以。
在这里init通常被称为构造函数,用于初始化,即当实例化一个对象时,对新对象进行初始化,通过传入新对象的参数将新对象的所有属性都初始化。
7、super函数的应用:
参考:http://python.jobbole.com/86787/
通过super函数实现父类的调用:
class animal(object):
def __init__(self,name):
self.name=name
def greet(self):
print('hello i am %s' %self.name)
class dog(animal):
def greet(self):
super().greet()
print('我擦 擦')
dog=dog('dog')
dog.greet()
#返回:hello i am dog 我擦 擦
这里animal是父类,dog是子类,我们在dog类定义了greet方法,为了同时实现父类的功能,又调用了父类的方法,从而得到相应的输出结果。
另一个继承的例子:
class Base(object):
def __init__(self):
print ("enter Base")
print ("leave Base")
class A(Base):
def __init__(self):
print ("enter A")
super(A, self).__init__()
print ("leave A")
class B(Base):
def __init__(self):
print ("enter B")
super(B, self).__init__()
print ("leave B")
class C(A, B):
def __init__(self):
print ("enter C")
super(C, self).__init__()
print ("leave C")
输出结果为:
>>> c = C()
enter C
enter A
enter B
enter Base
leave Base
leave B
leave A
leave C
python基本数据预处理语法函数(2)的更多相关文章
- python基本数据预处理语法函数(1)
numpy包: ####数组###########from numpy import * shape #获取维度 size #获取长度 arange(0,5,1) #生成数组函数,从0到5以1为间隔 ...
- python迭代器与iter()函数实例教程
python迭代器与iter()函数实例教程 发布时间:2014-07-16编辑:脚本学堂 本文介绍了python迭代器与iter()函数的用法,Python 的迭代无缝地支持序列对象,而且它还允许程 ...
- Python学习教程(learning Python)--2.3.4Python函数返回值
本节讨论Python函数返回值问题. Python和C语言一样,也可以在函数结束时返回一个值.但在定义自己的Python函数时,是不需要指定返回值数据类型的,这和Python不关心变量的数据类型是一致 ...
- Python 中的isinstance函数
解释: Python 中的isinstance函数,isinstance是Python中的一个内建函数 语法: isinstance(object, classinfo) 如果参数object是cla ...
- 举例详解Python中的split()函数的使用方法
这篇文章主要介绍了举例详解Python中的split()函数的使用方法,split()函数的使用是Python学习当中的基础知识,通常用于将字符串切片并转换为列表,需要的朋友可以参考下 函数:sp ...
- 小甲鱼:Python学习笔记003_函数
>>> # 函数>>> def myFirstFunction(params1,params2...): print("这是我的第一个函数!") ...
- Python基础:语法基础(3)
本篇主要介绍Python中一些基础语法,其中包括:标识符.关键字.常量.变量.表达式.语句.注释.模块和包等内容. 1. 标识符和关键字 1.1 标识符 标识符是变量.常量.函数.属性.类.模块和包等 ...
- Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数
Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数 目录 Pycharm使用技巧(转载) Python第一天 ...
- Python(四) —— 函数
什么是函数? 把一堆代码放一起就叫函数 函数用来干什么? 不复写代码,提高代码重复利用程度 怎么定义以及调用函数: def fun1(): #定义函数 print('这是一个函数') #函数体,里面什 ...
随机推荐
- ORACLE DG在线日志修改
ORACLE DG在线日志修改 SQL>select SEQUENCE#,first_time,next_time,APPLIED, THREAD# from v$archived_log or ...
- 背包&数位dp(8.7)
背包 0/1背包 设dp[i][j]为前i个物品选了j体积的物品的最大价值/方案数 dp[i][j]=max(dp[i-1][j-w[i]]+v[i],dp[i-1][j])(最大价值) dp[i][ ...
- jmeter接口测试初体验
今天初体验了一把jmeter,把操作的一些经历贴出来,督促自己进步.等逐步掌握后再次回首时,希望是有所思的,欣慰的! jmeter: Apache JMeter是Apache组织开发的基于Java的压 ...
- c# WPF——创建带有图标的TreeView
1.使用数据模板对TreeViewItem进行更改 2.xaml中重写TreeviewItem的控件模板 3.继承TreeViewItem(TreeView中的元素),后台进行控件重写.(介绍此方法) ...
- 一件很奇怪的事关于Nuget包
两个项目 A,B 分别引用了Newtonsoft.Json.dll A项目有引用B项目. A B 项目引用Newtonsoft.Json.dll文件源路径是相同的.但是经常报版本不匹配. 之后经过细心 ...
- Hibernate入门4
HIbernate的导航查询: 适用场景:当一张A表关联到另一张B表的多条记录,存在一对多的关系(或者多对多),那么查询A表的记录时,就可以将A表某条记录关联的B表的所有记录查询出来,这种方式,就叫做 ...
- jquery点击切换在点击切换
<div style=" position: absolute; top: 6rem; right: 4rem;" id="hides" > < ...
- SSM框架—Spring+SpringMVC+MyBatis
1.环境搭建 1.1概念 Spring是一个Java应用的开源框架,Bean/Context/Core/IOC/AOP/MVC等是其重要组件,IOC控制反转,AOP面向切面编程,各种注入方式,实现方式 ...
- CodeForces.1174D.EhabandtheExpectedXORProblem(构造前缀异或和数组)
题目链接 这道题比赛的时候没做出来,赛后补题的时候发现其实可以构造一个前缀异或和数组,然后根据初始化的第一个值进行填数,但是作为菜鸡的我虽然坚信自己的想法是正确的却想了很久也没有能够构造出来所谓的前缀 ...
- Java学习day5程序控制流程二
循环结构: 循环语句的四个组成部分:1.初始化部分(init_statement) 2.循环条件部分(test_exp) 3.循环体部分(body_statement) 4.迭代部分(after_st ...