- 内置函数介绍
- 面向过程编程
-曾老湿, 江湖人称曾老大。
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
内置函数介绍
内置函数 |
---|
#注意:内置函数id()可以返回一个对象的身份,返回值为整数。
这个整数通常对应与该对象在内存中的位置,但这与python的具体实现有关,不应该作为对身份的定义,即不够精准,最精准的还是以内存地址为准。
is运算符用于比较两个对象的身份,等号比较两个对象的值,内置函数type()则返回一个对象的类型
更多内置函数

abs |
---|
取绝对值
代码语言:javascript复制print(abs(-1))
print(abs(0))
all |
---|
如果iterable中的所有值x的bool(x)为True,则返回True。
如果iterable为空,则返回True。
代码语言:javascript复制# 底层代码
def all(iterable):
for element in iterable:
if not element:
return False
return True
# 调用测试
print(all([1,'',None]))
print(all([1,2,'aaa']))
print(all([]))
print(all(''))

any |
---|
如果iterable中的任何x的bool(x)为True,则返回True。 如果iterable为空,则返回False。
代码语言:javascript复制# 底层代码
def any(iterable):
for element in iterable:
if element:
return True
return False
# 调用测试
print(any([0,'',None,False,1]))
print(any([0,'',None,False]))
print(any([]))

bin |
---|
二进制转换
oct |
---|
十进制转换
hex |
---|
十六进制转换
bool |
---|
查看布尔值
所有数据都有布尔值,只有几种的布尔值为假
代码语言:javascript复制print(bool(0))
print(bool(''))
print(bool([]))
print(bool(None))
bytes |
---|
字节类型
代码语言:javascript复制res='你'.encode('utf-8')
res='你'.encode('utf-8')
res=bytes('你',encoding='utf-8')
print(res,type(res))
callable |
---|
判断一个数据类型是不是可调用对象
代码语言:javascript复制print(callable(len))
print(callable(1))
chr |
---|
将字符编码表转换成ASCII码表的字符
代码语言:javascript复制print(chr(65))
print(chr(90))
print(chr(97))
print(chr(122))
ord |
---|
ord与chr相反,把ASCII码表的数字展示出来
代码语言:javascript复制print(ord('a'))
print(ord('z'))
print(ord('@'))
dir |
---|
查看某个函数下面所有的方法
代码语言:javascript复制import time
print(dir(time))
divmod |
---|
传递两个参数,最后得出结果,第一个参数除以第二个参数的结果放入元组中,前面是整数部分,后面是余数部分
代码语言:javascript复制print(divmod(3003,20))

一般应用场景,就是一个网站分页的计算,如果我有3003个商品,一个页面摆20个商品,我需要多少页?
enumerate |
---|
循环一个列表,将该列表的值和索引存入元组中
代码语言:javascript复制for i in enumerate(['a','b','c']):
print(i)

eval |
---|
将字符串中的表达式拿出来运行
代码语言:javascript复制res=eval('[1,2,3]')
print(res,type(res))

pow |
---|
传递三个参数,前两个参数的进行幂运算的结果对第三个参数取余
代码语言:javascript复制print(pow(2,3,5))
# 类似
print(2**3%5)
reverse |
---|
反转
代码语言:javascript复制l=[1,'a','3',3]
l1=reversed(l)
print(list(l1))
round |
---|
四舍五入
代码语言:javascript复制print(round(3.5))
print(round(3.3))
slice |
---|
切片
代码语言:javascript复制l=['a','b','c','d','e']
s='helloworld'
obj=slice(1,5,2)
print(l[1:5:2])
print(l[obj])
print(s[1:5:2])
print(s[obj])

zip |
---|
拉链函数
代码语言:javascript复制l=[1,2,3,4,5,6,7]
s='hello'
res=zip(l,s)
print(list(res))

import |
---|
导入模块
代码语言:javascript复制m=__import__('time')
print(m.time())
面向对象重点知识 |
---|
在面向对象文章中,重点介绍
代码语言:javascript复制object.__dict__
classmethod
staticmethod
property
delattr
hasattr
getattr
setattr
isinstance
issubclass
object
super
面向过程编程
可以理解为是一个编程思想或者是变成套路
核心是过程二字,过程指的就是解决问题的步骤,即先干什么再干什么后干什么... 基于该思想编写程序就好比在设计一条流水线,是一种机械式的思维方式
优点:复杂的问题流程化,进而简单化 缺点:可扩展性差
代码语言:javascript复制## 注册功能:
#阶段1: 接收用户输入账号与密码,完成合法性校验
def talk():
while True:
username=input('请输入你的用户名: ').strip()
if username.isalpha():
break
else:
print('用户必须为字母')
while True:
password1=input('请输入你的密码: ').strip()
password2=input('请再次输入你的密码: ').strip()
if password1 == password2:
break
else:
print('两次输入的密码不一致')
return username,password1
#阶段2: 将账号密码拼成固定的格式
def register_interface(username,password):
format_str='%s:%sn' %(username,password)
return format_str
#阶段3: 将拼好的格式写入文件
def handle_file(format_str,filepath):
with open(r'%s' %filepath,'at',encoding='utf-8') as f:
f.write(format_str)
def register():
user,pwd=talk()
format_str=register_interface(user,pwd)
handle_file(format_str,'user.txt')
register()
如果要添加功能,那就很麻烦,牵一发而动全身
代码语言:javascript复制#阶段1: 接收用户输入账号与密码,完成合法性校验
def talk():
while True:
username=input('请输入你的用户名: ').strip()
if username.isalpha():
break
else:
print('用户必须为字母')
while True:
password1=input('请输入你的密码: ').strip()
password2=input('请再次输入你的密码: ').strip()
if password1 == password2:
break
else:
print('两次输入的密码不一致')
role_dic={
'1':'user',
'2':'admin'
}
while True:
for k in role_dic:
print(k,role_dic[k])
choice=input('请输入您的身份>>: ').strip()
if choice not in role_dic:
print('输入的身份不存在')
continue
role=role_dic[choice]
return username,password1,role
#阶段2: 将账号密码拼成固定的格式
def register_interface(username,password,role):
format_str='%s:%s:%sn' %(username,password,role)
return format_str
#阶段3: 将拼好的格式写入文件
def handle_file(format_str,filepath):
with open(r'%s' %filepath,'at',encoding='utf-8') as f:
f.write(format_str)
def register():
user,pwd,role=talk()
format_str=register_interface(user,pwd,role)
handle_file(format_str,'user.txt')
register()