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)的更多相关文章

  1. python基本数据预处理语法函数(1)

    numpy包: ####数组###########from numpy import * shape #获取维度 size #获取长度 arange(0,5,1) #生成数组函数,从0到5以1为间隔 ...

  2. python迭代器与iter()函数实例教程

    python迭代器与iter()函数实例教程 发布时间:2014-07-16编辑:脚本学堂 本文介绍了python迭代器与iter()函数的用法,Python 的迭代无缝地支持序列对象,而且它还允许程 ...

  3. Python学习教程(learning Python)--2.3.4Python函数返回值

    本节讨论Python函数返回值问题. Python和C语言一样,也可以在函数结束时返回一个值.但在定义自己的Python函数时,是不需要指定返回值数据类型的,这和Python不关心变量的数据类型是一致 ...

  4. Python 中的isinstance函数

    解释: Python 中的isinstance函数,isinstance是Python中的一个内建函数 语法: isinstance(object, classinfo) 如果参数object是cla ...

  5. 举例详解Python中的split()函数的使用方法

    这篇文章主要介绍了举例详解Python中的split()函数的使用方法,split()函数的使用是Python学习当中的基础知识,通常用于将字符串切片并转换为列表,需要的朋友可以参考下   函数:sp ...

  6. 小甲鱼:Python学习笔记003_函数

    >>> # 函数>>> def myFirstFunction(params1,params2...): print("这是我的第一个函数!") ...

  7. Python基础:语法基础(3)

    本篇主要介绍Python中一些基础语法,其中包括:标识符.关键字.常量.变量.表达式.语句.注释.模块和包等内容. 1. 标识符和关键字 1.1 标识符 标识符是变量.常量.函数.属性.类.模块和包等 ...

  8. Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数

    Python第七天   函数  函数参数   函数里的变量   函数返回值  多类型传值     函数递归调用   匿名函数   内置函数 目录 Pycharm使用技巧(转载) Python第一天   ...

  9. Python(四) —— 函数

    什么是函数? 把一堆代码放一起就叫函数 函数用来干什么? 不复写代码,提高代码重复利用程度 怎么定义以及调用函数: def fun1(): #定义函数 print('这是一个函数') #函数体,里面什 ...

随机推荐

  1. dp培训完结(8.9)

    概率与期望dp 期望: 为什么下面的式子成立? 若x可以取1,2,3,则x+c可以取1+c,2+c,3+c..........x*c可以取1*c,2*c,3*c why? 举个例子(E(x+y)=E( ...

  2. vue中淡入淡出示例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. Android Studio 连接夜神模拟器

    网上找到的解决是需要我们 然后运行cmd命令,cd到夜神安装目录,执行命令 nox_adb.exe connect 127.0.0.1:62001

  4. C# picturebox 加载图片后透明显示在另一控件之上

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  5. 安装node和npm和vue-cli和webpack-cli

    下载node(http://nodejs.cn/download/),安装时直接下一步,安装路径不要有汉字和空格查看node和npm是否安装成功,检查版本:node -vnpm -v 安装淘宝的cnp ...

  6. struts2 基础

    框架(frameWork):某一种应用的半成品 struts2: 表现层 处理与页面进行交互的相关功能  hibernate: 持久层 负责业务逻辑数据的持久化  spring: 业务层 负责复杂的业 ...

  7. CEPH集群搭建(CentOS 7)

    以包含四个节点的集群为例,其中包括一个 ceph-deploy 管理节点和一个三节点的Ceph存储集群. 下图中每个节点代表一台机器. 创建一个 Ceph 存储集群,它有一个 Monitor 和两个 ...

  8. Spring MVC-学习笔记(5)spring MVC的文件上传、下载、拦截器

    1.文件上传.      spring MVC为文件上传提供了直接的支持,这种支持是即插即用的MultipartResolver(多部分解析器)实现的.spring MVC使用Apache Commo ...

  9. 2018 我要告诉你的 Vue 知识大全

    Vue ,React ,Angular 三大主流框架,最后我选择学习 Vue ,接触过 React ,自己感觉学习曲线有些陡峭,进而我选择了学习 Vue ,他的学习曲线平稳很多:不管选择什么框架,除了 ...

  10. [2019杭电多校第一场][hdu6579]Operation(线性基)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6579 题目大意是两个操作,1个是求[l,r]区间子序列的最大异或和,另一个是在最后面添加一个数. 如果 ...