初识python - 函数(三)
-
自定义函数
-
内置函数
-
其他
-
len
-
open
-
range
-
id
-
type
-
-
输入输出
-
输入输出
-
print
-
input
-
-
强制转换
-
dict()
-
list()
-
tuple()
-
int()
-
str()
-
bool()
-
set()
-
-
数学相关
-
abs,绝对值
v = abs(-1)
print(v)-
float() 转换成浮点型(小数,
-
v = [1,2,311,21,3,]
result = max(v)
print(result) -
找最大的值 max
v = [1,2,311,21,3,]
result = max(v)
print(result)-
min 找最小
-
sum 求和
-
-
-
divmode两者相除的商和余数
-
a,b = divmod(1001,5)
print(a,b) -
pow 幂(次方)
v = pow(2,4)
print(v) -
round 返回浮点数x的四舍五入值。
v = round(1.22,7)
print(v) -
map 循环每个元素(参数二),然后让每个元素执行函数(参数一,)将结果执行保存到新的列表中,并返回
-
filter 用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
-
reduce 累计
result = filter(lambda x:True if type(x) ==int else False,v1)
print(list(result)) -
内置函数——分页
# 练习题 请通过分页对数据进行展示
"""
要求:
每页显示10条数据
让用户输入要查看的页面:页码
"""
USER_LIST = []
for i in range(1,836):
temp = {'name':'你少妻-%s' %i,'email':'123%s@qq.com' %i }
USER_LIST.append(temp)
# 数据总条数
total_count = len(USER_LIST)
# 每页显示10条
per_page_count= 10
# 总页码数
max_page_num,a = divmod(total_count,per_page_count)
if a>0:
max_page_num += 1
while True:
pager = int(input('要查看第几页:'))
if pager < 1 or pager > max_page_num:
print('页码不合法,必须是 1 ~ %s' %max_page_num )
else:
"""
# 第1页:USER_LIST[0:10] -> 0123456789
# 第2页:USER_LIST[10:20]
# 第3页:USER_LIST[20:30]
...
"""
start = (pager-1) * per_page_count
end = pager * per_page_count
data = USER_LIST[start:end]
for item in data:
print(item)
-
-
进制转化
-
将十进制转换成二进制
-
num = 13
v1 = bin(num)
print(v1) -
oct,将十进制转换成八进制
num = 8
v1 = oct(num)
print(v1) -
int将其他进制转换成十进制
# 二进制转化成十进制
v1 = '0b1101'
result = int(v1,base=2)
print(result)
# 八进制转化成十进制
v1 = '0o1101'
result = int(v1,base=8)
print(result)
# 十六进制转化成十进制
v1 = '0x1101'
result = int(v1,base=16)
print(result) -
hex,将十进制转换成十六进制
num = 16
v1 = hex(num)
print(v1) -
chr 将十进制转数字转换成unicode所对应的字符
v = 90
r = chr(v)
print(r) -
ord 根据字符找到unicode中找到与其对应的十进制
v = ord('人')
print(v)
-
-
面向对象追加
-
issubclass(class, classinfo) 用于判断参数 class 是否是类型参数 classinfo 的子类。
class Base:
pass
class Base1(Base):
pass
class Foo(Base1):
pass
class Bar:
pass
print(issubclass(Bar,Base))
print(issubclass(Foo,Base)) -
isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。
class Base(object):
pass
class Foo(Base):
pass
obj = Foo()
print(isinstance(obj,Foo)) # 判断obj是否是Foo类或其基类的实例(对象)
print(isinstance(obj,Base)) # 判断obj是否是Foo类或其基类的实例(对象) -
super()
class Base(object):
def func(self):
print('base.func')
return 123
class Foo(Base):
def func(self):
v1 = super().func()
print('foo.func',v1)
obj = Foo()
obj.func()
# super().func() 去父类中找func方法并执行
######################################################################
class Bar(object):
def func(self):
print('bar.func')
return 123
class Base(Bar):
pass
class Foo(Base):
def func(self):
v1 = super().func()
print('foo.func',v1)
obj = Foo()
obj.func()
# super().func() 根据类的继承关系,按照顺序挨个找func方法并执行(找到第一个就不在找了)
#######################################################
class Base(object): # Base -> object
def func(self):
super().func()
print('base.func')
class Bar(object):
def func(self):
print('bar.func')
class Foo(Base,Bar): # Foo -> Base -> Bar
pass
obj = Foo()
obj.func()
# super().func() 根据self对象所属类的继承关系,按照顺序挨个找func方法并执行(找到第一个就不在找了)
-
如何判断数据类型中有没有返回值?
-
无返回值:例:append
-
仅有返回值:split、keys,get等
-
有返回值+修改数据 例:pop()
-
常用重点:
-
str
-
strip 返回字符串
-
split 返回列表
-
replace 返回字符串
-
join 返回字符串
-
-
list
-
append 无返回值
-
insert 无返回值
-
pop 返回删除的数据
-
remove 无返回值
-
find/index 返回索引的位置
-
-
dict
-
get 返回新值
-
keys 返回列表
-
values 返回列表
-
items 返回列表
-
-