python入门开发笔记之函数进阶

日韩Instagram顶级账号运营拆解:视觉审美、内容策略与粉丝增长 理解社交平台的内容生态,需要从用户习惯和平台规则入手。日本用户偏爱杂志感氛围,韩国用户注重企划感与转化闭环,差异背后是内容审美与商业化环境的深刻影响。通过拆解日韩顶级账号的赛道分布、内容库生产流程、发布频率与互动策略,可以看到稳定输出和精准定位是账号增长的基础。视觉体系的统一、垂直细分的标签、以及承接爆款流量的准备,都是可复用的工程化运营方法。同时,注意广告标注与版权合规,避免买粉和伪原创等误区。本文从日韩头部账号的运营规律出发,为内容创作者提供一套可落地的Instagram增长与商业变现参考。 阅读详情

本节重点:

使学生掌握函数名称空间、闭包、装饰器知识
本节时长需控制在 分钟内

名称空间

又名name space, 顾名思义就是存放名字的地方,存什么名字呢?举例说明,若变量x=1,1存放于内存中,那名字x存放在哪里呢?名称空间正是存放名字x与1绑定关系的地方

名称空间共3种,分别如下

locals: 是函数内的名称空间,包括局部变量和形参
globals: 全局变量,函数定义所在模块的名字空间
builtins: 内置模块的名字空间
不同变量的作用域不同就是由这个变量所在的命名空间决定的。

作用域即范围

全局范围:全局存活,全局有效
局部范围:临时存活,局部有效
查看作用域方法 globals(),locals()

作用域查找顺序

level = 'L0'
n = 22


def func():
    level = 'L1'
    n = 33
    print(locals())

    def outer():
        n = 44
        level = 'L2'
        print(locals(),n)

        def inner():
            level = 'L3'
            print(locals(),n) #此外打印的n是多少?
        inner()
    outer()


func()

问题:在inner()里的打印的n的值是多少?

LEGB 代表名字查找顺序: locals -> enclosing function -> globals -> builtins

locals 是函数内的名字空间,包括局部变量和形参
enclosing 外部嵌套函数的名字空间
globals 全局变量,函数定义所在模块的名字空间
builtins 内置模块的名字空间

闭包

关于闭包,即函数定义和函数表达式位于另一个函数的函数体内(嵌套函数)。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数。当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包。也就是说,内部函数会在外部函数返回后被执行。而当这个内部函数执行时,它仍然必需访问其外部函数的局部变量、参数以及其他内部函数。这些局部变量、参数和函数声明(最初时)的值是外部函数返回时的值,但也会受到内部函数的影响。

def outer():
    name = 'alex'

    def inner():
        print("在inner里打印外层函数的变量",name)

    return inner


f = outer() 

f()

闭包的意义:返回的函数对象,不仅仅是一个函数对象,在该函数外还包裹了一层作用域,这使得,该函数无论在何处调用,优先使用自己外层包裹的作用域

装饰器

你是一家视频网站的后端开发工程师,你们网站有以下几个版块。

def home():
    print("---首页----")

def america():
    print("----欧美专区----")

def japan():
    print("----日韩专区----")

def henan():
    print("----河南专区----")

视频刚上线初期,为了吸引用户,你们采取了免费政策,所有视频免费观看,迅速吸引了一大批用户,免费一段时间后,每天巨大的带宽费用公司承受不了了,所以准备对比较受欢迎的几个版块收费,其中包括“欧美” 和 “河南”专区,你拿到这个需求后,想了想,想收费得先让其进行用户认证,认证通过后,再判定这个用户是否是VIP付费会员就可以了,是VIP就让看,不是VIP就不让看就行了呗。 你觉得这个需求很是简单,因为要对多个版块进行认证,那应该把认证功能提取出来单独写个模块,然后每个版块里调用 就可以了,与是你轻轻的就实现了下面的功能 。

#_*_coding:utf-8_*_

user_status = False #用户登录了就把这个改成True

def login():
    _username = "alex" #假装这是DB里存的用户信息
    _password = "abc!23" #假装这是DB里存的用户信息
    global user_status
    if user_status == False:
        username = input("user:")
        password = input("pasword:")
        if username == _username and password == _password:
            print("welcome login....")
            user_status = True
        else:
            print("wrong username or password!")
    else:
        print("用户已登录,验证通过...")

def home():
    print("---首页----")

def america():
    login() #执行前加上验证
    print("----欧美专区----")

def japan():
    print("----日韩专区----")

def henan():
    login() #执行前加上验证
    print("----河南专区----")

home()
america()
henan()

此时你信心满满的把这个代码提交给你的TEAM LEADER审核,没成想,没过5分钟,代码就被打回来了, TEAM LEADER给你反馈是,我现在有很多模块需要加认证模块,你的代码虽然实现了功能,但是需要更改需要加认证的各个模块的代码,这直接违反了软件开发中的一个原则“开放-封闭”原则,简单来说,它规定已经实现的功能代码不允许被修改,但可以被扩展,即:

封闭:已实现的功能代码块不应该被修改
开放:对现有功能的扩展开放
这个原则你还是第一次听说,我擦,再次感受了自己这个野生程序员与正规军的差距,BUT ANYWAY,老大要求的这个怎么实现呢?如何在不改原有功能代码的情况下加上认证功能呢?你一时想不出思路,只好带着这个问题回家继续憋,媳妇不在家,去隔壁老王家串门了,你正好落的清静,一不小心就想到了解决方案,不改源代码可以呀。 你师从沙河金角大王时,记得他教过你,高阶函数,就是把一个函数当做一个参数传给另外一个函数,当时大王说,有一天,你会用到它的,没想到这时这个知识点突然从脑子 里蹦出来了,我只需要写个认证方法,每次调用 需要验证的功能 时,直接 把这个功能 的函数名当做一个参数 传给 我的验证模块不就行了么,哈哈,机智如我,如是你啪啪啪改写了之前的代码。

#_*_coding:utf-8_*_

user_status = False #用户登录了就把这个改成True

def login(func): #把要执行的模块从这里传进来
    _username = "alex" #假装这是DB里存的用户信息
    _password = "abc!23" #假装这是DB里存的用户信息
    global user_status

    if user_status == False:
        username = input("user:")
        password = input("pasword:")

        if username == _username and password == _password:
            print("welcome login....")
            user_status = True
        else:
            print("wrong username or password!")

    if user_status == True:
        func() # 看这里看这里,只要验证通过了,就调用相应功能

def home():
    print("---首页----")

def america():
    #login() #执行前加上验证
    print("----欧美专区----")

def japan():
    print("----日韩专区----")

def henan():
    #login() #执行前加上验证
    print("----河南专区----")
home()
login(america) #需要验证就调用 login,把需要验证的功能 当做一个参数传给login
# home()
# america()
login(henan)

你很开心,终于实现了老板的要求,不改变原功能代码的前提下,给功能加上了验证,此时,媳妇回来了,后面还跟着老王,你两家关系 非常 好,老王经常来串门,老王也是码农,你跟他分享了你写的代码,兴奋的等他看完 夸奖你NB,没成想,老王看后,并没有夸你,抱起你的儿子,笑笑说,你这个代码还是改改吧, 要不然会被开除的,WHAT? 会开除,明明实现了功能 呀, 老王讲,没错,你功能 是实现了,但是你又犯了一个大忌,什么大忌? 你改变了调用方式呀, 想一想,现在没每个需要认证的模块,都必须调用你的login()方法,并把自己的函数名传给你,人家之前可不是这么调用 的, 试想,如果 有100个模块需要认证,那这100个模块都得更改调用方式,这么多模块肯定不止是一个人写的,让每个人再去修改调用方式 才能加上认证,你会被骂死的。。。。 你觉得老王说的对,但问题是,如何即不改变原功能代码,又不改变原有调用方式,还能加上认证呢? 你苦思了一会,还是想不出,老王在逗你的儿子玩,你说,老王呀,快给我点思路 ,实在想不出来,老王背对着你问, 老王:学过匿名函数没有? 你:学过学过,就是lambda嘛 老王:那lambda与正常函数的区别是什么? 你:最直接的区别是,正常函数定义时需要写名字,但lambda不需要 老王:没错,那lambda定好后,为了多次调用 ,可否也给它命个名? 你:可以呀,可以写成plus = lambda x:x+1类似这样,以后再调用plus就可以了,但这样不就失去了lambda的意义了,明明人家叫匿名函数呀,你起了名字有什么用呢? 老王:我不是要跟你讨论它的意义 ,我想通过这个让你明白一个事实 说着,老王拿起你儿子的画板,在上面写了以下代码:

def plus(n):
    return n+1

plus2 = lambda x:x+1

老王: 上面这两种写法是不是代表 同样的意思? 你:是的 老王:我给lambda x:x+1 起了个名字叫plus2,是不是相当于def plus2(x) ? 你:我擦,你别说,还真是,但老王呀,你想说明什么呢? 老王: 没啥,只想告诉你,给函数赋值变量名就像def func_name 是一样的效果,如下面的plus(n)函数,你调用时可以用plus名,还可以再起个其它名字,如

calc = plus

calc(n)
你明白我想传达什么意思了么? 你:。。。。。。。。。。。这。。。。。。嗯 。。。。。不太。。。。明白 。。 老王:。。。。这。。。。。呵呵。。。。。。好吧。。。。,那我在给你点一下,你之前写的下面这段调用 认证的代码

home()
login(america) #需要验证就调用 login,把需要验证的功能 当做一个参数传给login
# home()
# america()
login(henan)

你之所改变了调用方式,是因为用户每次调用时需要执行login(henan),类似的。其实稍一改就可以了呀

home()
america = login(america)
henan = login(henan)

这样你,其它人调用henan时,其实相当于调用了login(henan), 通过login里的验证后,就会自动调用henan功能。 你:我擦,还真是唉。。。,老王,还是你nb。。。不过,等等, 我这样写了好,那用户调用时,应该是下面这个样子

home()
america = login(america) #你在这里相当于把america这个函数替换了
henan = login(henan)
#那用户调用时依然写
america()

但问题在于,还不等用户调用 ,你的america = login(america)就会先自己把america执行了呀。。。。,你应该等我用户调用 的时候 再执行才对呀,不信我试给你看。。。 老王:哈哈,你说的没错,这样搞会出现这个问题? 但你想想有没有解决办法 呢? 你:我擦,你指的思路呀,大哥。。。我哪知道 下一步怎么走。。。 老王:算了,估计你也想不出来。。。 学过嵌套函数没有? 你:yes,然后呢? 老王:想实现一开始你写的america = login(america)不触发你函数的执行,只需要在这个login里面再定义一层函数,第一次调用america = login(america)只调用到外层login,这个login虽然会执行,但不会触发认证了,因为认证的所有代码被封装在login里层的新定义 的函数里了,login只返回 里层函数的函数名,这样下次再执行america()时, 就会调用里层函数啦。。。 你:。。。。。。什么? 什么个意思,我蒙逼了。。。 老王:还是给你看代码吧。。

def login(func): #把要执行的模块从这里传进来

    def inner():#再定义一层函数
        _username = "alex" #假装这是DB里存的用户信息
        _password = "abc!23" #假装这是DB里存的用户信息
        global user_status

        if user_status == False:
            username = input("user:")
            password = input("pasword:")

            if username == _username and password == _password:
                print("welcome login....")
                user_status = True
            else:
                print("wrong username or password!")

        if user_status == True:
            func() # 看这里看这里,只要验证通过了,就调用相应功能

    return inner #用户调用login时,只会返回inner的内存地址,下次再调用时加上()才会执行inner函数

此时你仔细着了老王写的代码 ,感觉老王真不是一般人呀,连这种奇淫巧技都能想出来。。。,心中默默感谢上天赐你一个大牛邻居。 你: 老王呀,你这个姿势很nb呀,你独创的? 此时你媳妇噗嗤的笑出声来,你也不知道 她笑个球。。。 老王:呵呵, 这不是我独创的呀当然 ,这是开发中一个常用的玩法,叫语法糖,官方名称“装饰器”,其实上面的写法,还可以更简单 可以把下面代码去掉

america = login(america) #你在这里相当于把america这个函数替换了

只在你要装饰的函数上面加上下面代码

@login
def america():
    #login() #执行前加上验证
    print("----欧美专区----")

def japan():
    print("----日韩专区----")

@login
def henan():
    #login() #执行前加上验证
    print("----河南专区----")

效果是一样的。 你开心的玩着老王教你的新姿势 ,玩着玩着就手贱给你的“河南专区”版块 加了个参数,然后,结果 出错了。。。

你:老王,老王,怎么传个参数就不行了呢? 老王:那必然呀,你调用henan时,其实是相当于调用的login,你的henan第一次调用时henan = login(henan), login就返回了inner的内存地址,第2次用户自己调用henan(“3p”),实际上相当于调用的时inner,但你的inner定义时并没有设置参数,但你给他传了个参数,所以自然就报错了呀 你:但是我的 版块需要传参数呀,你不让我传不行呀。。。 老王:没说不让你传,稍做改动便可。。

老王:你再试试就好了 。 你: 果然好使,大神就是大神呀。 。。 不过,如果有多个参数呢? 老王:。。。。老弟,你不要什么都让我教你吧,非固定参数你没学过么? *args,**kwargs… 你:噢 。。。还能这么搞?,nb,我再试试。 你身陷这种新玩法中无法自拔,竟没注意到老王已经离开,你媳妇告诉你说为了不打扰你加班,今晚带孩子去跟她姐妹住 ,你觉得媳妇真体贴,最终,你终于搞定了所有需求,完全遵循开放-封闭原则,最终代码如下。

#_*_coding:utf-8_*_

user_status = False #用户登录了就把这个改成True

def login(func): #把要执行的模块从这里传进来

    def inner(*args,**kwargs):#再定义一层函数
        _username = "alex" #假装这是DB里存的用户信息
        _password = "abc!23" #假装这是DB里存的用户信息
        global user_status

        if user_status == False:
            username = input("user:")
            password = input("pasword:")

            if username == _username and password == _password:
                print("welcome login....")
                user_status = True
            else:
                print("wrong username or password!")

        if user_status == True:
            func(*args,**kwargs) # 看这里看这里,只要验证通过了,就调用相应功能

    return inner #用户调用login时,只会返回inner的内存地址,下次再调用时加上()才会执行inner函数


def home():
    print("---首页----")

@login
def america():
    #login() #执行前加上验证
    print("----欧美专区----")

def japan():
    print("----日韩专区----")

# @login
def henan(style):
    '''
    :param style: 喜欢看什么类型的,就传进来
    :return:
    '''
    #login() #执行前加上验证
    print("----河南专区----")

home()
# america = login(america) #你在这里相当于把america这个函数替换了
henan = login(henan)

# #那用户调用时依然写
america()

henan("3p")

此时,你已累的不行了,洗洗就抓紧睡了,半夜,上厕所,隐隐听到隔壁老王家有微弱的女人的声音传来,你会心一笑,老王这家伙,不声不响找了女朋友也不带给我看看,改天一定要见下真人。。。。 第二2天早上,产品经理又提了新的需求,要允许用户选择用qq\weibo\weixin认证,此时的你,已深谙装饰器各种装逼技巧,轻松的就实现了新的需求。

带参数装饰器

#_*_coding:utf-8_*_
user_status = False #用户登录了就把这个改成True

def login(auth_type): #把要执行的模块从这里传进来
    def auth(func):
        def inner(*args,**kwargs):#再定义一层函数
            if auth_type == "qq":
                _username = "alex" #假装这是DB里存的用户信息
                _password = "abc!23" #假装这是DB里存的用户信息
                global user_status

                if user_status == False:
                    username = input("user:")
                    password = input("pasword:")

                    if username == _username and password == _password:
                        print("welcome login....")
                        user_status = True
                    else:
                        print("wrong username or password!")

                if user_status == True:
                    return func(*args,**kwargs) # 看这里看这里,只要验证通过了,就调用相应功能
            else:
                print("only support qq ")
        return inner #用户调用login时,只会返回inner的内存地址,下次再调用时加上()才会执行inner函数

    return auth

def home():
    print("---首页----")

@login('qq')
def america():
    #login() #执行前加上验证
    print("----欧美专区----")

def japan():
    print("----日韩专区----")

@login('weibo')
def henan(style):
    '''
    :param style: 喜欢看什么类型的,就传进来
    :return:
    '''
    #login() #执行前加上验证
    print("----河南专区----")

home()
# america = login(america) #你在这里相当于把america这个函数替换了
#henan = login(henan)

# #那用户调用时依然写
america()

# henan("3p")
练习题

一:编写3个函数,每个函数执行的时间是不一样的,

提示:可以使用time.sleep(2),让程序sleep 2s或更多,

二:编写装饰器,为每个函数加上统计运行时间的功能

提示:在函数开始执行时加上start=time.time()就可纪录当前执行的时间戳,函数执行结束后在time.time() - start就可以拿到执行所用时间

三:编写装饰器,为函数加上认证的功能,即要求认证成功后才能执行函数

四:编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码

提示:从文件中读出字符串形式的字典,可以用eval(’{“name”:“egon”,“password”:“123”}’)转成字典格式

Matlab入门基础思维导图 0 Matlab入门基础1 开发环境介绍2 基本操作。 阅读详情

相关推荐

Python3入门与进阶_课堂笔记

Python3 基础 目录Python3 基础1 介绍1.1 教程1.2 用途1.3 特点2 基础2.1 基本数据类型2.1.1 Number2.1.2 String2.1.3 List2.1.4 Tuple2.1.5 Set2.1.6 Dictionary2.1.7 数据类型转换2.2 运算符2.2.1 成员运算符2.2.2 算术运算符2.2.3 赋值运算符2.2.4 逻辑运算符2.2.5 身份...

weixin_41710054的博客 1万+

python装饰器

原文链接:https://book.apeland.cn/details/52/ https://www.liaoxuefeng.com/wiki/1016959663602400/1017451662295584 文章目录一个有趣的小故事装饰器传入参数 一个有趣的小故事 你是一家视频网站的后端开发工程师,你们网站有以下几个版块。 def home(): print("---首页----") def america(): print("----欧美专区----") def japan().

岁月的博客 487

Python 全栈开发从入门到实战进阶课程

本课程涵盖了 Python 编程的多个方面,包括编程基础、数据结构、函数与装饰器、面向对象编程、文件 IO 和文本处理、并发编程、网络编程、数据库、前端开发、爬虫以及前后端分离博客项目等内容。通过丰富的视频讲解和实例演示,帮助学员全面掌握 Python 编程技能。

qwert 2879

python全栈开发中级_python全栈开发中级班全程笔记(第二模块、第三章)第4节 :函数进阶(重点:装饰器、迭代器、生成器)...

python全栈开发笔记第二模块第三章4节:函数进阶一、函数进阶1、函数进阶--命名空间命名空间,又称名称空间,或名字空间,就是存放变量名的地方比如 n = 1 , 1是存在内存的,但n 这个名字和绑定关系就存储在命名空间*命名空间和作用域是有直接关系的,主要分三种:locals : 是函数内的名称空间,包括局部变量和形参globals : 全局变量,函数定义所在模块的名字空间builtins:内...

weixin_39903375的博客 664

海康威视摄像头CVE-2017-7921漏洞复现:从零到一的实战指南(含解密工具下载)

本文详细解析了海康威视摄像头CVE-2017-7921漏洞的技术原理与复现方法,提供从环境搭建到实战利用的完整指南。通过认证绕过漏洞,攻击者可获取敏感信息并执行高权限操作,文章还包含解密工具下载与防御建议,助力安全研究人员深入理解物联网设备安全风险。

weixin_29325515的博客 813

解密微信DAT图片:一键转换JPG/PNG/GIF的实用指南

本文详细解析微信DAT图片的加密机制及转换方法,提供从定位文件到使用WeijieSoft工具一键转换JPG/PNG/GIF的完整指南。涵盖新旧版微信存储路径差异、批量处理技巧及常见问题解决方案,帮助用户高效恢复重要图片并释放存储空间。

weixin_29305337的博客 3618

高清无码的2018全球区块链3.0产业图谱

2008 年,中本聪发表奠基性论文《Bitcoin: A Peer-to-Peer Electronic Cash System》,“区块链”这一概念横空出世。区块链技术具有去中介化、可追溯性好、难以篡改等特点,鉴于其在金融、科技等领域深刻的颠覆式变革潜力。近年来,区块链受到全球的广泛关注,我这里有一份区块链的通俗解释版,详情见《从区块链看三国群英榜,万年老二叫得不冤!》。从应用角度,业内普遍将区...

cpongo011702 12万+

手把手教你用Cadence VPWLF源和参数扫描:搞定非周期激励与gmid曲线绘制(避坑指南)

本文详细介绍了如何在Cadence Virtuoso中使用VPWLF源生成复杂非周期激励信号,并结合gmid方法进行双参数扫描优化电路设计。通过实战案例和避坑指南,帮助工程师高效解决波形生成和参数可视化难题,提升模拟电路设计效率。

weixin_29260291的博客 426

AVPlayer 播放在线视频和本地文件(数据库)设置

首先使用AVPlayer 必须导入框架: AVFoundation 以及 头文件: #<MediaPlayer/MediaPlayer.h> 两者的主要区别在路径的初始化:1、播放本地视频(数据库数据) titleLabel.text = [NSString stringWithFormat:@"%@",currentMusicModel.audio_name]; [i

timtian008的博客 378万+

化学气相沉积CVD工艺中MKS下游排气高速节流阀的国产化替代方案及产品

对标MKS、VAT和CDK等国外公司的下游排气高速节流阀系列产品,本文介绍了相应的国产化替代方案和产品。基于CVD工艺,技术方案将下游流量调节阀变为了下游压力调节阀,并采用分体结构,将调压阀与PID控制器分离,调压阀具备大口径和高速功能,电子气控驱动调压阀快速动作,PID控制器接收真空计信号和控制气控驱动阀,可实现阀门全开时间小于0.1秒。

Shanghai_Eyoung的博客 5259

UG NX与PLC-1500的在环虚拟测试

TIA、PLCSIM、NetToPLCsim、KEPServerEX以及UG NX的在环虚拟测试

lvtlvtlvtlvt的博客 4220

菜鸟必收藏,13个Python惯用小技巧

Python的小技巧很多,入门容易精通难!在进阶的路上,有没有什么好的技巧和好的方法,就是不断总结,不断记笔记!尤其是好的用法,就像写作文一样,好的名言警句要多背诵一些,写作的时候,肚子里的墨水多了才能才思泉涌,写出更多的好代码。 1 遍历一个序列 评:Python中的序列是使用频率非常高的,很多传统语言过来的,习惯用下标遍历,Python中序列是可迭代的,直接f...

456

【Claude】Auto Mode 触发安全分类器拦截的三种错误变体及对应处理 bug报错已解决

深度解析Claude Auto Mode安全分类器拦截的三种变体:内容拒绝、操作中断、累积触发,含完整排查流程与绕过策略。

博客 7590

超实用!这是我见过最全面的python入门教程,新手小白不要错过

Python 类库(模块)极其丰富,这使得 Python 几乎无所不能,不管是传统的 Web 开发、PC 软件开发、Linux 运维,还是当下火热的机器学习、大数据分析、网络爬虫,Python 都能胜任。这套 Python 基础教程不是教科书,不会玩弄概念,而是力求口语化和通俗化,让读者尽快入门。如果有朋友出于兴趣学习 Python,请阅读本教程的前半部分,这是基础,可以降低学习成本;如果你想全面掌握 Python 编程,胜任企业中的实际项目开发,那你应该按部就班学习本教程的所有章节。

白帽阿叁的博客 1027

RK3588平台开发系列讲解(SARADC篇)SARADC的工作流程

📢本篇将介绍SARADC的源码分析和工作流程。

内核笔记 3231

130、NPU的仿真测试:使用Gem5进行全系统仿真

这篇文章摘要(149字): 本文分享了使用Gem5全系统仿真器验证NPU设计的实践经验。作者通过搭建自定义NPU模型并集成到Gem5系统中,实现了CPU-NPU-内存协同仿真。关键点包括:1) 使用SimObject机制构建可配置的NPU模型;2) 合理配置IO和内存总线避免访问冲突;3) 开发Linux驱动实现CPU与NPU通信;4) 利用Gem5调试功能监控内部状态。相比RTL仿真和FPGA验证,该方法能快速验证微架构设计并定位系统级问题,有效减少了流片风险。文章特别强调了时钟域配置、总线仲裁、对齐访问

m0_50546716的博客 122

诺,你们要的Python进阶来咯!【函数、类进阶必备】

目录 一、Python进阶初体验——内置函数 1、数据类型相关 2、数值计算相关 3、bool 值判断相关 4、IO 相关 5、元数据相关 6、help()函数 7、sorted()函数 8、range()函数 二、给代码安个家——函数进阶 1、位置参数 2、参数默认值 3、关键字参数 4、任意参数列表 5、多返回值 三、让你函数更好用——类进阶 1、类属性和类方法 (1)类属性的定义 (2)类方法的定义 2、静态方法 3、私有属性、方法 4、特殊方法 5、类的

累计发表博客60余万字,优快云 博客专家、Java 领域优质创作者、华为云享专家、阿里云专家博主。专注分享 Java 优质文章,毕设实战项目开发,全网粉丝10W+ 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Python学习笔记 (从入门到进阶)

这是我自己学习Python时所记录的一些学习笔记。之前也看过不少的书,课坚持下去的那本是趣味编程100例,一个老外写的,真心的很棒。之后我要把从入门到实践啃了一遍,算是把知识点好好的整理了一下吧 Python学习笔记第一部分:基础知识一、基础数据类型二、Python的I/O(输入输出)以及强制类型转换三、变量与运算符四、选择判断结构五、数据结构(1)—元组六、数据结构(2)—列表七、数据结构(...

欢迎来到Gorit的博客 4954

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Python入门学习笔记:Python函数

使用def 语句定义一个函数a语法# 函数体# 进行一些操作return result # 可选的返回值说明用于声明一个函数,告诉 Python 这是一个函数的定义。函数名,一个有效的标识符,规则和变量名一致。形参,可以是0 ~ n 个,参数之间用逗号分隔。定义函数执行的具体操作。指定函数的返回值,没有则返回None。return之后的代码不会执行。示例# 定义一个 lambda 函数,接收两个参数 a 和 b,返回它们的和​print(add(3, 5)) # 输出: 8。

PQI_JiXian的博客 1775

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

python笔记(从入门到入土)

本篇用于记录学习的python知识,便于以后速查,不定期更新(●'◡'●)

m0_65627817的博客 1386

Python书籍推荐,从入门到进阶的4个阶段15本好书推荐

作为十年Python开发者,我结合自身经验整理了不同阶段的经典书籍,助你系统化掌握Python技能。以下书籍涵盖入门到高阶,每阶段精选3-5本,按需选择事半功倍!

Candyz7的博客 6935

Python快速入门笔记

python快速入门笔记,可以用来对python的一些基础内容进行回顾

Jin的博客 1174

python进阶书籍的推荐 知乎,python入门后如何进阶

入门容易、薪水高是人们学习Python的动力,而理论知识和实践经验是高薪的先决条件。如何快速学习 Python 技术拿高薪?有的人选择参加培训,一步到位,有的人因为时间和经济因素选择自学。不过学Python的路还很长,大家要做好长期学习的准备。跟大家分享一下学习Python应该读哪些书。(文末送读者GPT 优快云)Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(学习教程文末GPT 优快云哈)

2401_85597273的博客 876

python从入门到进阶整理书籍推荐

附Java/C/C++/机器学习/算法与数据结构/前端/安卓/Python/程序员必读书籍书单大全: 书单导航页(点击右侧 极客侠栈 即可打开个人博客):极客侠栈 ①【Java】学习之路吐血整理技术书从入门到进阶最全50+本(珍藏版): ②【算法数据结构+acm】从入门到进阶吐血整理书单50+本(珍藏版): ③【数据库】从入门到进阶必读18本技术书籍网盘吐血整理网盘(珍藏版): ④【Web前端...

qq_43340946的博客 4960

python编程入门十二:函数进阶

第十二章:函数 关于python的函数,我想分两章来完成,原因就是不管是哪门语言,函数都是一个内容相当多的一个机制

洪博hopes的博客 1237

python进阶书籍的推荐-Python 入门到进阶书籍推荐

入门1.《像计算机科学家一样思考Python (第2版)》简单、易懂、量少。“这是一本试图用python最小子集来揭示计算机思想的书。”,建议大家读过一遍后,再“练过”一遍。计算机图书推荐阅读纸质版,条件不允许的话可在【Python 实用宝典】公众号后台回复TP2下载该书电子版。2.《Python编程快速上手》这是一本面向实践的书籍,讲了许多Python的实战教程(和本公众号一样),具有任务驱动性...

weixin_37988176的博客 2493
上一篇: Python还可以做情感分析你不看看吗?
下一篇: python入门学习笔记之生成器&迭代器
程序员_大白
博客等级 码龄5年 1万+粉丝 4001原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值