资讯专栏INFORMATION COLUMN

python:基础知识

xiongzenghui / 508人阅读

摘要:与字符串不同,列表元素支持改写。元组比列表更加安全,因为不能修改集合一个功能是进行集合操作,另一个功能是消除重复的元素。

基本数据类型

数字

整型,浮点型,布尔型,复数

序列,集合,字典
1 组
# 序列-字符串 str 不可变类型
# 序列-列表 list [1,2,3,4,5,6,"as"] 可变类型
# 序列-元组 tuple (1,2,3,4,5,6,"as") 不可变类型
    #和列表选择、切片很相似
    #type((1)) int;type(("as")) str 此处()不是元祖,而是运算符
    # ord() 查询字符串返回对应的 ASCII 数值 
# 集合 set {1,2,3,4,5}
    # 1 无序
    # 2 不重复 {1,1,2,2,3,3} {1,2,3}
    # 3 差集- {1,2,3,4,5}-{3,4} {1,2,5}
    # 4 交集&
    # 5 并集|
    # 6 type({}) 为dict字典;set() 创建一个无序不重复元素集
# 字典 dict {"q":"打击","w":"前进"}
    # key不重复
    # key需为不可变类型,不能为列表,可以为元组
    # {} 定义空字典
2 集合

set {1,2,3,4,5}

1 无序 
2 不重复 {1,1,2,2,3,3} {1,2,3} 
3 差集- {1,2,3,4,5}-{3,4} {1,2,5} 
4 交集& 
5 并集| 
6 type({}) 为dict字典;set() 创建一个无序不重复元素集 
3 字典

dict {"q":"打击","w":"前进"} key不重复 key需为不可变类型,不能为列表,可以为元组 {} 定义空字典

注: 1.列表可以存放不同类型的数据,是最常用的Python数据类型。与字符串不同,列表元素支持改写。 
2.列表和元组的区别在于:列表中的元素的值可以修改,而元组中的元素的值不可以修改。元组比列表更加安全,因为不能修改 
3.集合一个功能是进行集合操作,另一个功能是消除重复的元素。
4 包、模块、类
# 区分包和文件夹 包内含__init__.py文件 此模块名为:init,内容可为空,加上,可解决
# import引入模块
# from t import c1 从t模块引入c1类、方法、变量或者 从t文件引入c1模块
# from t import * 可引入t所有类 不推荐,当命名冲突时难处理
# python 一行建议不超过80,换行,上行末尾加:,不推荐,可用括号
# 包和模块不会被重复导入
# 避免循环引入模块
5 类
# 特殊类:枚举 enum (from enum import Enum)
    # 枚举标签名称最好用大写,表示常量
    # 枚举的意义重在标签,不在数值
    # 字典和类变量的缺点是:可变,值可被轻易更改;没有防止相同标签的功能
    # 枚举类型:VIP.GREEN 枚举名称:VIP.GREEN.name 枚举值:VIP.GREEN.value
    # 枚举可以被for in遍历,遍历VIP.__members__.items()或VIP.__members,可将别名加入遍历
    # 枚举可以做==比较,不能做大小比较
    # 枚举值相同时,第二个标签将成为第一个的别名
    # 用法:在数据库中存储数值,在代码中用标签代表类型,通过数字转换成数据类型 a=1 VIP(a)
    # 值需强制为整型数字,不许值相同时(from enum import IntEnum,unique) ,class VIP(IntEnum,unique):
    

#枚举案例

from enum import IntEnum,unique
#from enum import Enum

class VIP(IntEnum):
    YELLOW=1
    RED=2
    BLUE=2
    GREEN=4
print(VIP.GREEN)
print(VIP.GREEN.name)
print(type(VIP.GREEN),type(VIP.GREEN.name))
print(VIP.GREEN.value)

for v in VIP:
    print(v)
    
for v in VIP.__members__:
    print(v)
    
for v in VIP.__members__.items():
    print(v)
    
a=1
print(VIP(a))

6 函数
# 函数可以作为结果被返回,函数可以赋值给另外一个变量
# 闭包(和函数的作用域有关)
    # 闭包=函数+环境变量
    # 环境变量:定义在函数外部,非全局变量,避免外部对其影响
    # 环境变量保存在  函数.__closure__[0].cell_contents中
    # nonlocal将变量转为环境变量
    # 闭包容易造成内存泄漏,用面向对象更加主流
#三目运算 x if x>y else y
# map 函数,序列 每个元素依次执行函数
    # 结合lambda匿名函数使用 list_x=[1,2,3] list_y=[1,2,3] r=map(lambda x,y:x*x+y,list_x,list_y)
# reduce在python3中已不是全局函数 from functools import reduce
    # 连续计算 返回结果

# 闭包案例展示

def curve_pre():
    a=25
    def curve(x):
        return a*x*x
    return curve
f=curve_pre()
print(f.__closure__)
print(f.__closure__[0].cell_contents)
print(f(2))

#闭包案例:计算走了多远
origin=1
def dis(pos):
    def do(x):
        nonlocal pos
        pos=x+pos
        return pos
    return do
t=dis(origin)
print(t(3))
print(t(3))

7 装饰器 decorator(AOP编程思想)
# 不改变原有函数,增加新的特性
# 最有价值的功能 @+装饰器的名字 不改变原函数调用方式
    # 直接调用原函数即可,无需通过新函数(体现出原函数和新函数之间的关联)
    
    # 为满足原函数可任意传入参数,可在装饰器内的函数加入 可变参数(*任意+参数名):例如:wrapper(*args)
    
    # **kw 关键字参数,可以指定任意数量,打印kw会以字典形式出现
    # 为支持**kw关键字参数,可在装饰器内部加入参数 **kw
    

# 装饰器案例

import time

def decorator1(func):
    def wrapper(*args,**kw):
        func(*args,**kw)
        print(time.time())
    return wrapper
@decorator1
def f1():
    print("打印现在时间:")
#f=decorator1(f1)
#f() 这里就可以看出装饰器的好处可以直接引用f1
f1()


@decorator1
def f2(myName):
    print(myName,"打印现在时间:")
f2("MA")

@decorator1
def f3(myName,**kw):
    print(myName,"打印现在时间:")
    print(kw)
f3("MA",a=1,b=2)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43688.html

相关文章

  • Python3基础知识

    摘要:基础知识基础语法基础知识编程第一步基础知识基本数据类型基础知识解释器基础知识注释基础知识运算符基础知识数字基础知识字符串基础知识列表基础知识元组基础知识字典基础知识条件控制基础知识循环基础知识迭代器与生成器基础知识函数基础知识数据结构基础知 Python3基础知识 | 基础语法 Python3基础知识 | 编程第一步 Python3基础知识 | 基本数据类型Python3基础知识 | ...

    freecode 评论0 收藏0
  • Python3基础知识

    摘要:基础知识基础语法基础知识编程第一步基础知识基本数据类型基础知识解释器基础知识注释基础知识运算符基础知识数字基础知识字符串基础知识列表基础知识元组基础知识字典基础知识条件控制基础知识循环基础知识迭代器与生成器基础知识函数基础知识数据结构基础知 Python3基础知识 | 基础语法 Python3基础知识 | 编程第一步 Python3基础知识 | 基本数据类型Python3基础知识 | ...

    z2xy 评论0 收藏0
  • Python爬虫学习路线

    摘要:以下这些项目,你拿来学习学习练练手。当你每个步骤都能做到很优秀的时候,你应该考虑如何组合这四个步骤,使你的爬虫达到效率最高,也就是所谓的爬虫策略问题,爬虫策略学习不是一朝一夕的事情,建议多看看一些比较优秀的爬虫的设计方案,比如说。 (一)如何学习Python 学习Python大致可以分为以下几个阶段: 1.刚上手的时候肯定是先过一遍Python最基本的知识,比如说:变量、数据结构、语法...

    liaoyg8023 评论0 收藏0
  • 干货 | 学习Python的正确姿势

    摘要:勤学学习效率与效果取决于执行力。这一步学习的正确姿势是在实践操作中发掘问题,然后带着问题找答案。拆分任务将目标分解成具体可执行的学习任务。勤学强大的执行力是学习的根本保障。分享复述检验学习成果,提高学习效果的最好方法。 showImg(https://segmentfault.com/img/bVbcPGZ?w=256&h=256); 前段时间和大家一起分享了一篇关于学习方法内容《大牛...

    Thanatos 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<