Python基础12-内置函数

2022-09-26 11:43:01 浏览数 (1)

  • 内置函数介绍
  • 面向过程编程

-曾老湿, 江湖人称曾老大。


-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。


内置函数介绍


内置函数

代码语言:javascript复制
#注意:内置函数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()

0 人点赞