计算机基础知识19

常见内置函数(汇总)

# 数据结构

  • bool() : 布尔型(True,False)
  • int (): 整型(整数)
  • float() : 浮点型(小数

  • list() 将一个可迭代对象转换成列表
  • tuple() 将一个可迭代对象转换成元组
  • str() 将数据转化成字符串
  • dict(): 创建一个字典

  • set(): 创建一个集合

  • complex : 复数

# 进制转换

  • bin() 将给的参数转换成二进制
  • oct() 将给的参数转换成八进制
  • hex() 将给的参数转换成十六进制
print(bin(10))  # 二进制:0b1010
print(hex(10))  # 十六进制:0xa
print(oct(10))  # 八进制:0o12

# 数学运算

  • abs() 返回绝对值  
  • divmode() 返回商和余数
  • pow(a, b) 求a的b次幂
  • sum() 求和
  • min() 求最小值
  • max() 求最大值
  • round() 四舍五入
print(abs(-2))  # 绝对值:2
print(divmod(20,3)) # 求商和余数:(6,2)
print(pow(10,2))  # 10**2
print(sum([1,2,3,4,5,6,7,8,9,10]))  # 求和:55
print(min(5,3,9,12,7,2))  #求最小值:2
print(max(7,3,15,9,4,13))  #求最大值:15
print(round(4.50))   # 五舍六入:4
print(round(4.51))   #5
"""a = 3.1415926
print('%.3f'%a)    保留三位小数
print('%.2f'%a)    保留两位小数"""

# 相关内置函数

  • reversed() 将一个序列翻转, 返回翻转序列的迭代器
  • lst = "你好啊"
    it = reversed(lst)   # 不会改变原列表. 返回一个迭代器, 设计上的一个规则
    print(list(it))  #['啊', '好', '你']
  • slice() 列表的切片
  • lst = [1, 2, 3, 4, 5, 6, 7]
    print(lst[1:3:1])  #[2,3]
    s = slice(1, 3, 1)  #  切片用的
    print(lst[s])  #[2,3]
  • len() 返回一个对象中的元素的个数
  • enumerate() 获取集合的枚举对象
  • lst = ['one','two','three','four']
    d = {i:j for i,j in enumerate(lst)
    print(d)    # {0:'one',1:'two',2:'three',3:'three',4:'four'}
  • all() 可迭代对象中全部是True, 结果才是True
  • any() 可迭代对象中有一个是True, 结果就是True
  • print(all([1,2,3,True,False))      #False
    print(any([1,2,3,True,False]))     #True
  • zip() 拉链, 将对象中对应的元素打包成一个元组, 然后返回由这些元组组成的列表. 如果各个迭代器的元素个数不一致, 则返回列表长度与最短的对象相同
  • l = [1,2,3,4,5]
    i = ['a','b','c','d','f']
    res = zip(l,i)
    print(list(res))   # [(1,'a'),(2,'b'),(3,'c'),(4,'d')]    
  • fiter() 过滤 ,用来筛选的函数,#列表以右保留

  • l = [11,22,33,44,55,66]
    res = filter(lambda x:x>30 ,l)
    print(list(res))    # [33,44,55,66]
  • map() 会根据提供的函数对指定序列做映射

  • l = [1,2,3,4,5,6,7]
    res = map(lambda x:x**2 ,l)
    print(res)    # [1,4,9,16,25,36,49]
  • format() 格式化

  • bytes() 把字符串转化成bytes类型
  • bs = bytes("今天吃饭了吗", encoding="utf-8")
    print(bs)  #b'\xe4\xbb\x8a\xe5\xa4\xa9\xe5\x90\x83\xe9\xa5\xad\xe4\xba\x86\xe5\x90\x97'
  • ord() 输入字符找带字符编码的位置
  • chr() 输入位置数字找出对应的字符
  • ascii() 是ascii码中的返回该值 不是就返回

# 和作用域相关

  • locals() 查看当前作用域中的名字
  • globals() 查看全局作用域中的名字,返回的形式是字典

# 和迭代器生成器相关

  • range() 生成数据
  • next() 迭代器向下执行一次, 内部实际使用了__ next__()方法返回迭代器的下一个项目
  • iter() 获取迭代器, 内部实际使用的是__ iter__()方法来获取迭代器

# 字符串类型代码的执行

  • eval() 执行字符串类型的代码. 并返回最终结果
  • exec() 执行字符串类型的代码,能执行复杂的代码

# 输入输出

  • print() : 打印输出
  • input() : 获取用户输出的内容

# 文件操作相关

  • open() : 用于打开一个文件, 创建一个文件句柄

# 帮助

  • help() : 函数用于查看函数或模块用途的详细说明

# 调用相关

  • callable() : 用于检查一个对象是否是可调用的. 如果返回True,

# 查看内置属性

  • dir() : 查看对象的内置属性, 访问的是对象中的__dir__()方法
  • print(dir(tuple))  #查看元组的方法

模块的简介

模块是Python中非常核心的一块内容,用的非常多,它比较简单

               python这门语言:调包侠

定义:模块就是一些列功能的集合,模块中就是提前写好了很多的功能,直接拿来使用

为什么用:站在巨人的肩膀上,别人写好的功能我们下载下来直接用,大大提高开发效率

                    支付宝支付、微信支付、发短信、验证码、等等很多的服务

 # 别人已经开发好了,给它下载下来,直接挪到我们自己的python文件中使用就行了

模块的分类:1. 内置模块(python解释器原来就存在的)  eg:time    
                      2. 第三方的(别人写好的模块,人家放在了网上,去网上下载)
                      3. 自定义的(我们自己写的模块)

模块存在的形式:一共有4钟形式,只需要掌握2钟

                          1. 我们自己写的python代码(.py文件)   

                                    # 一个py文件就是一个模块
                          2. 包的形式:就是一系列py文件的组合(文件夹)
                                  # 文件夹内部有一个__init__.py文件

"""
    以后我们再开发一些复杂的功能的时候,就可以想想或者查查有没有别人已经写好了,直接下载下来使用
"""

# 当你遇到一个你不会的技术栈的时候,一般情况都有人开发好了

github:https://github.com/
gitee:https://gitee.com/

模块的导入方式之import句式

import md       # 导入模块的时候,只写模块名字,不要写后缀名字

"""

学习模块的时候一定要弄清楚:谁是执行文件,谁是导入文件

运行当前文件,会导入md文件到此文件中,并且会执行导入文件

导入文件多次,那么,也只会执行一次导入文件中得代码,只需要导入一次即可

"""

import md
print(md.money)    # 直接使用模块名字点变量名 直接使用

 导入文件时:1. 首先会运行执行文件,产生执行文件的全局名称空间
                    2. 运行导入文件
                   3. 会产生导入文件的全局名称空间,把导入文件中的名字都丢到全局名称空间中
                   4. 会在执行文件中产生一个名字md指向导入文件的名称空间

import md
money = 999
print(md.money) # 1000 知名道姓的调用,不会乱
def read1():
    print('read1')
md.read1()     # 还是指md中的read1函数
money=888
md.change()
print(money)

from...import...句式

from md import money      # 只能执行money

1、 from...import...句式导入模块也会执行导入文件,多次导入也只会执行一次

from md import money
print(money)    # 1000

2、如果使用from...import...句式的情况,在执行文件中会出现名字冲突的情况(在执行文件中出现了和导入的名字一样的时候),出现冲突的时候离谁近用谁的

from md import money
money = 999
print(money)   # 999
"""就近原则"""

导入语句的其他用法

1、 起别名

from md import money as m
from md import read1 as r1
from md import read2 as r2
import md
def read1():
    print('from read1')
read1()   # 执行自己的read1
r1()      # 执行导入文件中的read1,起别名

2、连续导入

import md
import time
import os
import sys

import md,time,os,sys

3、通用导入  *

from md import *
read1()
change()
__all__ = ['money', 'read1', 'change']   # 限制导入

循环导入

# 在你编码的过程中,循环导入是不能允许出现的
如果你的代码出现了循环导入问题,那就是你的代码设计不合理,及时更正

判断文件类型

判断文件类型:执行文件/导入文件

if __name__ == '__main__':   # md
    read2()
if __name__ == '__main__':

  '''在这个判断里面写的代码,只有是以执行文件运行的时候,才会被执行,当被当成导入文件的时候,不会被运行'''

今日思维导图:

计算机基础知识19_第1张图片

计算机基础知识19_第2张图片

你可能感兴趣的:(python)