首页 > 代码库 > 第三篇、内置方法

第三篇、内置方法

一、

作用域
只要在内存里面存在,则就能使用。(栈)

外层变量,可以被内层变量使用
内层变量,无法被外层变量使用
上面这两句话对吗?  
答案:是不对的
如:
If 1==1:
    Name = ‘alex’
Print name

判断如下:能打印出来吗?
Name = {”ns”,123}
For item in name:
    Print item
Print item
为什么不能打印出来的原因:
理解1:
变量都是指向了内存地址,而item这个内存地址,没有变量指向所以不能被打印

二 、三元运算

三元运算就是if else的变种

If xxx:

       Pass

Else:

       Pass

案例:

Name = ‘alex’

If 1==1:

       Name = ‘sb’

Else:

       Name = ‘2b’

运用三元运算如下:

Name = 值

Name = 1 if 条件 else 2      意思是如果这个条件满足,就执行name=1否则等于2

案例 转化 :Name = ‘sb’ if 1==1 else ‘2b’
Pyrene =int( input().strip())
If  pyrene >1:
	Print “aa”
Else:
	Print “bb”

三、整形内置方法

python,一切事物都是对象,对象基于类创建
对象的属性和方法都是属于一个类
1、
在python终端里面
type查看对象的类型    type(a)
dir(类型名) 查看类中提供的所有功能呢个
Help(类) :查看命令的帮助信息
help(类.方法)查看类的具体使用方法
2、
在IDE里面
ctrl+鼠标左键点击需要查看的内容就能看到详细信息1
3、
类中的方法:
__方法__:内置方法:可能有多种执行方法
方法             : 只有一种执行方法,对象.方法

内置方法

>>> dir(int)
[__abs__, __add__, __and__, __class__, __cmp__, __coerce__, __delattr__, __div__, __divmod__, __doc__, __float__, __floordiv__, __format__, __getattribute__, __getnewargs__, __hash__, __hex__, __index__, __init__, __int__, __invert__, __long__, __lshift__, __mod__, __mul__, __neg__, __new__, __nonzero__, __oct__, __or__, __pos__, __pow__, __radd__, __rand__, __rdiv__, __rdivmod__, __reduce__, __reduce_ex__, __repr__, __rfloordiv__, __rlshift__, __rmod__, __rmul__, __ror__, __rpow__, __rrshift__, __rshift__, __rsub__, __rtruediv__, __rxor__, __setattr__, __sizeof__, __str__, __sub__, __subclasshook__, __truediv__, __trunc__, __xor__, bit_length, conjugate, denominator, imag, numerator, real]

.1、相加

如下面的例子

技术分享
>>> 1+1
2
>>> n1=1
>>> n2=n1
>>> n1+n2
2
>>> n1.__add__(n2)
2
View Code

2、绝对值

技术分享
>>> n1 = -9
>>> n1.__abs__()  →方法一
9
>>> abs(-9)       →方法二
9
上面的是内置方法的绝对值方法
View Code

3、进制数

技术分享
I = 10  等价于I = int(10)
Int(“10”,base=2)  这里的意思:前面的引号里面代表的是进制数,base表示多少进制

进制占用最少位数
Def bit_length(self):
  ‘’’返回表示该数字的进制占用的最少位数
如:>>> bin(3)
0b11
View Code

4、比较

两个数相比较的方法,如果第一个数大于第二个数,得出来的值为1,如果相等得到的是0,如果小于,得出来的值就是-1

技术分享
方法一
Age =19
Age.__cmp__(18)

方法二
Cmp(19,18)
View Code

5  强制生成一个元祖

技术分享
Def__coerce__(self,y):  强制生成一个元祖
            x.__coerce__(y) <==>coerce(x,y)
Age = 10
Age.__coerce__(15)
(10,15)
View Code

6       取商

技术分享
Def__div__(self,y):
    X,__div__(y)<==>x/y
View Code

7、转换成浮点类型

技术分享
Def __float__(self):
    转换成浮点类型
    x.__float__()<==>float(x)
代码例子:
>>> type(age)
<type int>
>>> float(age)
1.0
>>> age.__float__()
1.0
>>>
View Code

8、地板除  不保留小数位的除

技术分享
Def__floordiv__(self,y)
    x.__floordiv__(y) <==> x//y
    
如: 5.0//2 得到的结果是2
View Code

9、

Def __fomat__(self,”y”)

       X,__format__(“y”)

       给x前面加上y个空格

 

技术分享
>>> age.__format__("10")
         1
>>>
View Code

10、

Def__hash__(self):

       如果对象object为哈希表类型,返回对象object的哈希值。哈希值为整数

在字典查找中,哈希值用于快速比较字典中的键

       x.__hash__()<==>hash(x)

11、

Def__hex__(self):

       返回当前数的十六进制表示

       X,__hex__()<==>hex(x)

技术分享
>>> age = 16
>>> age.__hex__()
0x10
八进制是
Def__oct__()
View Code

12、

Def__init__(self,x,base=10)

       构造方法

13、

技术分享
1 Def__invert__(self):
2     x.__invert__()
3 取反
View Code

14、

    Def__mod__(self,y):
        取模(得到他的余数)
        x.__mod__(y)<==>x%y

15、两个数相乘

技术分享
Def__mul__(self,y):
    x.__mul__(y) <==>x*y
View Code

16、取这个数的负值和正值

技术分享
取这个数的负值
Def __neg__(self):
    x.__neg__()  <==>-x

Def__pos__(self)
    取这个数的正数
    x.__pos__() <==>+x
View Code

17、这个值不等于0

技术分享
Def__nonzero__(self):
    x.__nonzero__() <==>x !=0
View Code

18、次方

技术分享
Def__pow__(self):
    x.__pow__(y[,z])<==> x**y
View Code

19、反过来相加(两个数颠倒过来相加)

技术分享
Def__radd__(self):
    X.__radd__(y)<==> y+x
View Code

20

技术分享
Def__repr__(self)
转化为解释器可读取的形式
    x.__repr__() <==>repr
View Code

21、

技术分享
Def__str__(self):
    转换为人阅读的形式
    x.__str__() <==>str
View Code

为什么一个对象能切片?因为里面有index方法

四、浮点型的内置方法

Def as_integer_ratio(self):
    获取改值的最简比
如:
>>> (10.0).as_integer_ratio()
(10, 1)
>>> (0.0).as_integer_ratio()
(0, 1)
>>> (-.25).as_integer_ratio()
(-1, 4)
>>>

Def fromhex(self,string):
    将十六进制字符串转换成浮点型
>>> float.fromhex(0x1.ffffp10)
2047.984375
>>> float.fromhex(-0x1p-1074)
-5e-324

五、字符串的内置方法

扩展:

在IDE里面查看一个类的方法:

在project旁边的大齿轮右键点击,

把show menbers点亮

 之后点击Scroll from Source

1、  创建字符串方法有下面两种方式

技术分享
Str = “aaa”
Str1 = str(“”aaa”)
View Code

2、首字母变大写

技术分享
Def capitalize(self):
    s.capitalize() →string
View Code

3、内容居中,width:总长度;fillchar 填充的内容

技术分享
Def center(self,width,fillchar=none)
    s.center(width[,fillchar]) →s.

需求:name=“aric”创建一个长度为20的字符串,然后让name居中显示
>>> name.center(20,"*")
********alex********
>>>
View Code

 4、子序列个数

技术分享
Def.count(self,sub,start=none)
    子序列个数
s.count(sub[,start[,end]]) →int
例子:
>>> name="dasdsdadsdwasss"
>>> name.count("s")
6
>>> name.count("s",0,10)  →指定从0开始到10下标位置有一共有多少s,注意这里不包含坐标10
3
View Code

5、是否以.xxx结束.如果是的话就返回true,否则返回false

技术分享
Def endswich(self,suffix,start=None,end=None)
    s.endswith(syffix[,start[,end]])  →
代码如下
>>> name = alex                                              >>> name.endswith(lex)                                       True       
View Code

6、将tab转换成空格,默认一个tab转换成8个字节

技术分享
Def expandtabs(self,tabsize=None):
    s.expandtabs([tabsize]) →string
代码如下:
>>> name = ale x
>>> name.expandtabs()
ale     x
>>> name.expandtabs(1)
ale x
>>> name.expandtabs(0)
alex
>>> name.expandtabs(8)
ale     x
>>> name.expandtabs(9)
ale      x
>>>
View Code

7、寻找子序列的位置,如果没找到,则异常返回-1

技术分享
Def find(self,sub,start=none,end=none)
    s.find(sub [,start[end]])
代码如下:
>>> name = alex   
>>> name.find(le)   →如果有多个,则只返回找到第一个子序列的位置
1
>>> name.find(e)
2
>>> name.find(s)   →如果子序列中没有则返回-1
-1
>>>
View Code

8、字符串格式化,动态参数,将函数式编程

Def format(*args,**kwargs)

       s.format(*args,**kwargs)

 

1>>> name = "i m {0},age{1}"   →这个是按照name的参数下标进行传参
>>> name.format(alex,73)
i m alex,age73
2>>> name = "i m {ss},age{dd}"   →参数的指定传参
>>> name.format(ss=alex,dd=84)
i m alex,age84

3、当需要传入的是列表或者元祖的时候,需要在列表名或者元祖名前面加上*>>> name = "i m {0},age {1}"
>>> li =[222,333]            →要把这个列表的参数传入到name字符串中
>>> name.format(*li)        →这里如果传入的是列表或者元祖的时候需要在列表名或者元祖名字前面加上*i m 222,age 333
4、当传入的是字典的时候,需要在格式化方法中加入两个*号,需要注意字符串中的参数字节和字典中的key中的字节要一样,否则会报错
>>> name = "i m {ss},age {dd}"
>>> dic = {ss:123,dd:456}            →这里的key要和name中的字符串需要替换的参数是一样的
>>> name.format(**dic)                →这里传入的时候需要在前面带两个**
i m 123,age 456

9、子序列位置,如果找到那就找到,如果没有找到,那么就会报错

技术分享
Def index(self,sub,start=None,end=None):
    s.index(sub [,start [,end]])  →int
这里和s.find的区别是:
find的方法:如果找到就返回找到的下标,如果没有找到那么就会返回-1。
index的方法:如果找到那就返回找到的下标,如果没有找到就会报错
代码如下:
>>> name = "alex"
>>> name.index(a)
0
>>> name.index(c)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found
View Code

10、是否是字母和数字

技术分享
Def isalnum(self):
        s.isalnum()→ bool(布尔)
代码如下:
>>> name = alex
>>> name.isalnum()
True
>>> name = "中文"
>>> name.isalnum()
False
View Code

11、

技术分享
1、Def isalpha(self):        是否是字母
    s.isalpha()  →bool
    
2、Def isdigit(self):        是否是数字
    s.isdigit()  →bool

3、Def islower(self):        是否是小写
    s.islower() →bool
代码示例
>>> name = "alex"
>>> name.islower()
True
View Code

12、 是否是空格

技术分享
Def isspace(self):     是否是空格
    s.isspace  →bool
View Code

13、是否是标题

 

技术分享
Def istitle(self):        是否是标题
    s.istitle()  →bool
代码如下:
>>> name = "al"
>>> name.title()        →这是一个把字符串转化为标题的方法,下面可以看出标题开头大写
Al
>>> name.istitle()        →判断标题
False
>>> name = "Hello Alex"
>>> name.istitle()      →判断标题
True
View Code

14、def isupper(self):

       s..isupper()  →是否是大写

15、字符串列表等连接、拼接

技术分享
Def join(self):            字符串列表等连接、拼接
    s.join(iterable) →str
代码例子:
>>> li = [s1,s2]
>>> _.join(li)
s1_s2
View Code

16、

技术分享
Def ljust(self,sidth,fill)): 指定字节,然后减去原来所占的字节数,之后剩下的在右    s.ljoun(width[,fillch])
例子
>>> name.ljust(30,"=")     这里是指定字节,这里指定一共30个,然后减去原来所占的字节数,之后剩下的在右边填充
Hello Aaa====================
View Code

17、

技术分享
Def lower(self):   变小写
    s.lower()  →string
例子:
>>> name
Hello AAAA
>>> name.lower()        →这里是把大写编程小写
hello aaaa
>>> name.upper()        →这里是把小写编程大写
HELLO AAAA
View Code

18、

技术分享
Def swapcase(self):    大写变小写,小写变大写
    s.swapcase() 
代码例子:
>>> name
Hello AAAA
>>> name.swapcase()
hELLO aaaa
View Code

19、

技术分享
Def lstrip(self,chars=None):   移除左侧空白
    s.lstip([chars])
View Code

20、

Def partition(self,sep):   分割,前,中,后
	s.partition(sep)  →


代码例子:	
>>> name
‘Hello Alex‘
>>> name.partition(‘ll‘)		→这里是以l作为分隔符,分割成下面的左半部分
(‘He‘, ‘ll‘, ‘o Alex‘)

 21、

Def replace(self,old,new):替换
	s.replace(old,new[,])

>>> name
‘Hello Alex‘
>>> name.replace(‘Al‘,‘al‘)		→这里是把Al替换成al,注意这里会把这个字符串中的所有的Al都替换成al,如,下面就把所有的替换成了*
‘Hello alex

>>> name.replace(‘e‘,‘**‘)		→这里把字符串中的所有的e都替换成了*
‘H**llo rl**x

22、

技术分享
Def rfind(self,sub,start):  从右边开始找字符串中的下标,没有找到返回-1
    s.rfind(sub [,start])

Def rindex(self): 从右边开始找字符串的下标
    s.rindex()

Def rjust(self):  指定宽度,填充左边数据
    s.rjust()

Def rpartition(self):  从右边开始分割
    s.rpartition()
代码如下:
>>> name
Hello Alex
>>> name.rpartition("e")
(Hello Al, e, x)

Def rsplit(self,sep=None):  从右开始到左分割
    s.rsplite()
View Code

23、

技术分享
以什么开始
Def startswich(self):
    s.startswich(prefix[,])
View Code

24、

技术分享
移除两段空白
Def strip(self,chars=None):
    s.strip([chars])
Def rstrip(self):
    s.rstrip()
View Code

25、

技术分享
变成标题模式
Def title(self):
    s.title() →string
View Code

26、

技术分享
转换,需要先做一个对应表,最后一个表示删除的字符集合
Def translate(self,table,deketechars=None)
    s.translate(table [,deletechars])  →string
View Code

 

 27、

 

技术分享
Def zfill(self,width):
    “””方法返回指定长度的字符串,元字符串右对齐,前面填充0”””
s.zfill(width) 
这里和rjust差不多,但是rjust比这个方法要强大。
View Code

 

第三篇、内置方法