Python 极简核心:函数

Python编程极简入门:3小时轻松上路 掌握Python就像学习骑自行车🚲——开始可能会摇晃,但一旦找到平衡点,就能自由驰骋!- 🚀 **专业之选**:PyCharm Professional(智能代码补全+数据库支持):全球平均年薪$80k+(来源:Stack Overflow 2023)- 🔧 **新手友好**:Thonny(内置调试器可视化执行过程)- 💻 **全能选手**:VS Code(安装Python扩展包):《流畅的Python》《Effective Python》:代码量仅为Java的1/5,开发速度提升3倍。 阅读详情

1. 函数

Python中有很多自带的函数,这里我们讨论的是一般意义上的函数,也就是自定义函数。

1.1 定义

(1)函数
这里的函数跟数学意义上的函数并没有实质上的差异,由函数名、参数、函数体、和返回值几个组成。

函数的使用主要包括函数的建立和函数的调用两个部分。

举个例子:

def add(a,b): # 函数名:add;参数传递:()必须有
    return a + b # 返回值,可以不写return(则默认为None)

print(add(1,1)) # 函数调用

2

(2)函数与类中的方法的区别:

方法也接受参数,处理、输出。但是它无法独立执行,需要有对象来调用执行。而且,方法在类中定义时总会有一个参数self,且这个参数在方法被实例对象调用时并不需要传递实参。这两点就是方法与函数的区别。


class My_module():
    '''
    country = 'China'  # 类属性——共性——静态(赋值)
    location = 'SH'    # 类属性——共性——静态(赋值)
    '''
    country = 'China'
    location = 'SH'
    def __init__(self, name, gender):
        '''
        :param name: 对象属性——个性——静态(借助 self 赋值)
        :param gender: 对象属性——个性——静态(借助 self 赋值)
        '''
        self.name = name
        self.gender = gender
    def say_hi(self, words):
        '''
        :param words: 方法——个性——动态(函数)
        :return: 打印出输入的字符串
        '''
        print(words)

my_module = My_module("Robin", "male") # 创建My_module()类的一个对象

print(f"In {my_module.country}") # 引用类属性
print(f"This is {my_module.name}.") # 引用对象属性
my_module.say_hi("Nice to meet you sir!") # 调用方法


In China
This is Robin.
Nice to meet you sir!

1.2 核心

函数是Python中的第一类对象 ,可以把函数赋值给变量,对该变量进行调用,可实现原函数的功能。
(变量——函数——函数式编程)

变量的作用域

由于函数也是对象,这部分可以参考:Python:变量的作用域与LEGB原则

参数传递

这里主要介绍两个特殊的参数传递方法(包裹传参):*args 和 **kwargs。

首先注意一点,*args 和 **kwargs只是参数传递的形式,并不是说参数名一定要使用这里的args和kwargs。

  • *args
    传递可变长度的参数,在参数数目未知的情况下可以使用。

    def args_passing1(*args):
        print(args)
    
    
    args_passing1('what', 'should', 'I', 'do')
    
    def args_passing2(*args):
        for i in args:
            print(i)
    
    ('what', 'should', 'I', 'do')
    just
    do
    it
    
  • **kwargs
    传递的参数为键值对(key-value)的形式。

    def kwargs_passing(**kwargs):
        for k, v in kwargs.items():
            print(f'{k} = {v}')
            print((k,v))
    
    kwargs_passing(key_name='robin')
    
    key_name = robin
    ('key_name', 'robin')
    

2. 高级玩法

2.0 写在前面

普通的函数已经不能再满足人们的欲望,所以根据需求,又诞生了很多相对来说较为高级的玩法。

简单理解

  • 懒得定义函数名:匿名函数——便于作为参数传递出去
  • 在函数里面定义和调用另一个函数:嵌套函数——便于封装(隐藏数据)
  • 将一个函数作为参数:高阶函数——接受别的函数作为参数
  • 在函数内部递归调用函数自身:递归函数
  • 闭包函数
  • 装饰器函数

本质框架

上面一下列举了这么多的函数,却没有讲清楚他们之间的联系,而这才是重点!

  • 函数为一等对象
    • 高阶函数
  • 函数作用域
    • 嵌套函数
      • 闭包函数.:①代码复用②减少函数参数->减少函数参数
        • 装饰器

注:
闭包函数:函数+自由变量
装饰器:函数+函数型自由变量

2.1 匿名函数 lambda

首先,匿名函数是一个函数表达式;
其次, 匿名函数很好地体现了函数式编程的特征(同map、filter、reduce等其它高阶函数一样)

匿名函数语法:lambda argument_list: expression
即 lambda 参数: 表达式

注意:这里的表达式(expression)实质上就是匿名函数的返回值,因此只能是表达式,而不能是语句!

# 以下两种相等同
# 1.不使用匿名函数
def f(x):
	return x * x
	
# 2.使用匿名函数
lambda x: x * x

与普通函数一样,匿名函数除了普通调用,也可以作为其他函数的输入参数。

f = lambda x: x * x
print(f(2)) # 4
# 匿名函数f作为map()函数的第一个参数
f = lambda x: x * x
print(list(map(f, [1, 2]))) # [1, 4]
#  lambda 与 sort()搭配
d = ["ale","apple","monkey","plea"]
d.sort(key = lambda x : [-len(x), x])
print(d)

['monkey', 'apple', 'plea', 'ale']

[-len(x), x]完成了两个操作:
一是将长的字符串放在前面(本身是升序,但是加了负号,就将最大的长度变为了最小的负数),第二是将字符串按照字母排序。

2.2 嵌套函数

定义:在函数内部定义一个函数

# 函数中套着另一个函数

def f1():
    print("outer func")
    def f2():
        print('inner func')
    f2()
f1()
outer func
inner func

添加链接描述

2.3 高阶函数

满足下述条件之一的函数称之为高阶函数(Higher-order Functions)
(1)接收函数作为参数
(2)或者返回一个函数

添加链接描述

# ①函数作为参数
def f1():
    print('Hi')

def f2():
    f1()
    print('This is Robin')

f2()
Hi
This is Robin

结果:

# ②函数作为返回值
def f1():
    print('Hi')

    def f2():
        print('This is Robin')
    return f2()
f1()

结果:

Hi
This is Robin

常见高阶函数:map,reduce、filter

  • map

map(function, iterable) -> iterator

map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

  • reduce

reduce(function, iterable) —> value

reduce把一个函数作用在一个可迭代对象,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算

  • filter

filter(function, iterable) —> iterator

filter 将可迭代对象中的每一个元素,传递给函数进行判断,最后返回结果为True的元素组成的一个iterator

  • sorted

sorted(iterable, key, reverse)—> list

sorted 函数默认将序列升序排列后返回一个新的 list,还可以自定义键函数(key)来进行排序,也可以设置reverse参数确定是升序还是降序

关于更为强大map,reduce、filter ,这里还有一份较为详细的总结:Python 高阶函数:一文搞透 map()、reduce()、filter()

2.4 递归函数

递归概念:所谓递归函数,就是在内部调用自己的函数。

递归的关键有三点:

  • 明确函数要解决的问题
  • 寻找递归结束条件
  • 找出等价表达式

例子:这里简单的给出求0-100之和的两个例子

# 计算0到100的和

# ①
# def sum(n):
#     if n == 0:
#         return 0
#     else:
#         return sum(n-1) + n
#
# r = sum(100)
# print(r)

# ②
# def sum(n):
#     if n < 2: # or n <= 1
#         return n
#     else:
#         return sum(n-1) + n
#
# r = sum(100)
# print(r)

这两个例子尽管递归结束条件选取的不同,但是都是正确的,结果都为5050。

更多详细的内容在这里有总结:Python 递归

2.5 闭包函数

闭包概念

刚开始学习闭包是,网上看到了以下定义:

理解闭包:

  • 延伸了作用域的函数
  • 如果一个函数定义在另一个函数的作用域内,并且引用了外层函数的变量,则该函数称为闭包
  • 闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境)

后来才发现,它掉了非常重要的一点:还需要return内部函数,正确的闭包定义应该如下:

function1里嵌套function2,内部的function2可以访问外部function1里的变量,且外部function1 return 的是内部function2时,外部函数就是一个闭包,

def function1(x):
    def function2(y):
        return x + y
    return function2

即:
闭包必须包含三个元素
①嵌套函数
②环境/自由变量
③return 内部函数

具体点说闭包的三个特征就是:

1.闭包函数必须有内嵌函数

2.内嵌函数需要引用该嵌套函数上一级namespace中的变量

3.闭包函数必须返回内嵌函数

举例:

def fun_out(a):
    def fun_in(b):
        return a + b
    return fun_in
    
fun1 = fun_out(1)

其中fun1函数是一个闭包,它携带着fun_out中定义的a变量,值为1。

why 闭包

(1)闭包 VS 类
还是上面得到例子,再定义一个函数fun5。

def fun_out(a):
    def fun_in(b):
        return a + b
    return fun_in
    
fun1 = fun_out(1)

fun5 = fun_out(5)
fun1(5) # 6
fun1(10) # 11

fun5(5) # 10
fun5(10) # 15

我们可以发现fun1和fun5两个函数的定义相同,只是携带的自由变量不同,便成为了两个函数。
由此闭包可以作为函数工厂,生产出功能类似,但是会有细微差别的函数。

所以,我们也可说,闭包就是引用了自由变量的函数。

观察上面的例子,很容易发现跟Python类的使用很接近!但是这比用类来实现更优雅

总的来说,闭包使得函数式编程拥有了类似面向对象编程的一种手法。

(2)闭包(局部变量) VS 全局变量

闭包作用

  • 想要改进如下代码:
def line1(x):
    return x + 1

def line2(x):
    return 2*x + 1

def line3(x):
    return 5*x + 10

def line4(x):
    return -2*x - 6
  • 可能的思路
def line(x, a, b):
    return a*x + b

line1 = line(x, 1, 1) 
line2 = line(1, 1, 1) 

但是这样就出问题了,因为需要知道全部的参数值

  • 使用闭包
def line_conf(a, b): # 使用外部函数的参数a和b说明直线的参量,这样可以复用内同一个闭包
    def line(x):
        return a*x + b
    return line # 再将返回值设为(内部)函数体

line1 = line_conf(1, 1)  # 记住闭包本质也是函数
line2 = line_conf(2, 1)

可以看出闭包作用:

  • ① 提高代码复用性
  • ② 减少函数的参数:line()函数有三个参数(自变量x以及a和b),通过line_conf()这个闭包,我们可以预设a和b的值,从而起减参的效果

换一种思路:理解本质

之前是由表及里,从概念、实例和作用等方面讲了闭包,现在我们换一种思路:从接近本质的地方出发,去思考。

2.6 装饰器函数

概念

装饰器是闭包的一个应用,只是携带的自由变量是一个函数。

待看,参考:python闭包

换一种思路

待看!
装饰器

参考:

  1. Python基础总结(1)
  2. Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)…啊啊啊——比较好的总结!
  3. python闭包——讲闭包及系列知识很不错
  4. 装饰器——别开生面,讲的浅显易懂,接近本质
19行Python实现极简聊天机器人:零依赖离线对话方案 聊天机器人是人机交互的基础技术形态,其核心在于输入理解、响应生成与输出呈现三步闭环。传统实现常依赖NLP模型、云API或Web框架,导致部署复杂、延迟高、成本不可控。本文聚焦‘最小可行对话单元’这一基础概念,基于规则匹配与模板响应原理,构建零网络请求、零模型下载、零环境配置的确定性对话系统。技术价值体现在超低资源占用(8MB内存)、毫秒级启动、全平台兼容及抗干扰鲁棒性;典型应用于IoT设备嵌入、编程教学演示、MVP快速验证及离线服务场景。文中19行可运行代码即该范式的工程落地体现。 阅读详情

相关推荐

N皇后遗传算法实战:Python极简实现与调参避坑指南

遗传算法(GA)是一种基于自然选择与群体进化的全局优化方法,其核心在于编码设计、适应度评估与种群演化机制的协同。在实际工程中,GA的价值不在于理论完备性,而在于能否快速构建可验证、可调试、可迁移的求解框架。本文以N皇后问题为载体,深入解析染色体排列编码、倒数型fitness函数设计、精英突变替代交叉等关键实践决策,覆盖从Matlab思维到Python工程落地的完整链路。内容紧扣‘可复现性’与‘参数可解释性’两大痛点,融合遗传算法、N皇后问题、Python优化等热词,适用于调度排程、路径规划、参数标定等真实业

weixin_33507732的博客 325

Python之闭包

如果一个函数定义在另一个函数的作用域内,并且引用了外层函数的变量,则该函数称为闭包。 闭包是Python所支持的一种特性,它让在非global scope定义的函数可以引用其外围空间中的变量,这些外围空间中被引用的变量叫做这个函数的环境变量。环境变量和这个非全局函数一起构成了闭包。 def outer(): name = "python" def inner(): ...

DansonC的博客 288

我精心制作的 python 一小时极简课程来了 ≧◠◡◠≦ 免安装程序+精简核心概念

我精心制作的 python 一小时极简课程来了 ≧◠◡◠≦ 免安装程序+精简核心概念并且不出意外的话,后续的软件我还是会继续使用 python 来写,没有别的原因,单纯就是因为它写起来最简单省力,并且有丰富的第三方库可以让我调用来解决很多实际问题,另外现在大火的 AI, AIGC chatgpt等大模型的代码也全都是 python,况且 python 比其他语言运行慢一点的缺点我完全可以接受,所以,我自己精心做了一个极简教程,来给有需要的朋友做一个 python 入门,

三维点云技术探索 177

Python 基础的核心——函数

Python 基础的核心——函数 设计函数最为重要的原则: 单一职责原则(一个函数只做好一件事情)————> 高度内聚低耦合 high cohesion low coupling 一个函数做一件事 函数的定义 在Python中可以使用def关键字来定义函数,和变量一样每个函数也应该有一个漂亮的名字,命名规则跟变量的命名规则是一致的。 且def后还有(): 括号里可以填参数 ,参数我们后面讲。 函数 —> y = f(x) / z = f(x, y) / … —> 相对独立且会

weixin_48919545的博客 681

我精心制作的 python 一小时极简课程来了 ≧◠◡◠≦ 绝非市面上的妖艳货

用过我的软件的朋友应该知道,目前我发布的所有的软件都是 python 写的,例如:发票批量识别软件点云格式转换软件亲人微信消息记录提取软件批量 WORD-MD 文档中英翻译软件批量 TXT 文本转音频软件点云漫游视频生成软件书写我的人生回忆录 Life Story批量人脸去噪清晰化神器批量音频转文本软件...

三维点云技术探索 138

SO逆向入门实战教程一:OASIS

文章目录一、前言二、准备三、Unidbg模拟执行四、ExAndroidNativeEmu 模拟执行五、算法分析六、尾声 一、前言 这是SO逆向入门实战教程的第一篇,总共会有十三篇,十三个实战。有以下几个注意点: 主打入门级的实战,适合有一定基础但缺少实战的朋友(了解JNI,也上过一些Native层逆向的课,但感觉实战匮乏,想要壮壮胆,入入门)。 侧重新工具、新思路、新方法的使用,算法分析的常见路子是Frida Hook + IDA ,在本系列中,会淡化Frida 的作用,采用Unidbg Hook + .

lilac的博客 2万+

深入理解Python中的闭包

在Python中,闭包是指一个函数对象,它引用了外部作用域的变量。换句话说,闭包是一个函数和与其相关的引用环境的组合体。

qalangtao的博客-qalangtao.com 857

自监督学习与上下文赌博机融合:视觉决策中的协同优化与实战指南

在机器学习领域,自监督学习(Self-Supervised Learning)通过设计前置任务从无标注数据中学习通用表征,已成为解决标注数据稀缺问题的关键技术。其核心原理是利用数据自身的结构生成监督信号,训练编码器提取鲁棒特征。上下文赌博机(Contextual Bandits)作为强化学习的简化分支,专注于在给定上下文信息下做出单步最优决策,平衡探索与利用,广泛应用于推荐系统、广告投放等场景。将两者结合,构建端到端的协同训练框架,能让视觉表征的优化直接服务于最终的决策目标,同时利用自监督任务作为正则化项提

weixin_33721344的博客 520

Python核心编程 --- 函数基础

函数概念:在编写程序的过程中,有某一功能代码出现多次,为了提高编写的效率以及代码的重用,把具有独立功能的代码块组织为一个小模块,这就是函数。函数定义:语法:def 函数名(): 函数调用:语法:函数名()函数说明文档:函数内容的第一行可用字符串进行函数说明 2.函数参数 参数:函数为了实现某项特定的功能,得到实现功能所需要的数据。参数分类:必选参数默认参数[缺省参数]可变参数[不定长参数]关键字参数 2.2 默认参数 2.3 可变参数 2.4 关键字参数 2.5 函数多返回值 2.6 嵌套调用

zhongziqia的博客 486

手把手教你用STM32的ADC读取PT100模块,实现高精度温度采集(附完整代码)

本文详细介绍了如何利用STM32的ADC模块读取PT100温度传感器信号,实现高精度温度采集系统。从硬件选型、ADC配置校准到温度计算算法和软件滤波技术,提供完整的实现方案和优化技巧,帮助工程师快速构建稳定可靠的温度监测系统。

weixin_29185199的博客 345

3D点云目标检测Complex-YOLO(训练篇)(一)———KITTI数据集预处理与制作

KITTI dataset Download dataset KITTI 3D Object Detection Evaluation 2017 link 下载四个部分,共41.4GB 解压后为四部分内容(相机校准矩阵calib、RGB图像image_2、标签label_2、点云数据velodyne) 对应的testing和training数据。其中,training数据为7481张(图片和点云对应的场景),testing数据 7518张(无label_2数据)。 Data Preprocess

“知识最大的敌人不是无知,而是错觉” 7150

python核心之函数

使用def关键字来定义一个函数,后面跟着函数名和圆括号(),括号中可以包含一些变量名(即参数),用于接收传入的数据。然后,你可以通过冒号开始一个缩进的代码块,该代码块包含函数体。

做一位与众不同的吗喽 647

从零到一:FAST_LIO与FAST_LIO2算法环境搭建与实战评测

本文详细介绍了FAST_LIO与FAST_LIO2算法的环境搭建与实战评测,包括算法原理、环境配置避坑指南、源码编译技巧及性能对比。FAST_LIO2凭借ikd-tree数据结构在动态环境中表现优异,处理速度提升至15ms,内存占用降低40%。文章还提供了常见问题排查和进阶优化技巧,助力开发者高效实现SLAM应用。

weixin_29271053的博客 470

Python极简入门:零基础到核心语法实战

Python是打开未来技术大门的钥匙,今天就是最好的开始时机!通过这篇指南,你可以掌握核心概念,接下来就是动手实践的时刻了!

qq_45438032的博客 1386

关于在线excel插件Univer笔记教程

univer在线excel插件确实是够强大,但也存在不少bug,用户用起来是真的很爽,和本地的wps差不多,但真正的开发起来是真的费劲。由于文档提供的信息不足,我们很多功能只能去看他们插件里的源代码,然后一点点测试,一点点尝试研究。此文章可省去五天的研究成本

guiplan 5826

C++软件调试与异常排查从入门到精通专栏介绍与文章汇总

根据近几年排查软件异常的实践与经验,系统地讲解了C++软件异常常见原因与常用排查方法,以图文并茂的方式给出具体的分析实例,带领大家逐步掌握C++软件异常排查的相关技术与要领。

dvlinker的技术专栏 23万+

探索Kimi:一款极简的Lisp风格编程语言

探索Kimi:一款极简的Lisp风格编程语言 项目介绍 Kimi是一款极简的Lisp风格编程语言,由Anjana Vakil在Recurse Center开发。Kimi的设计理念是保持语言的简洁性和优雅性,通过最小化的特性集合来实现编程语言的基本功能。Kimi的解释器是用Python 3编写的,使得学习和使用Kimi变得非常便捷。 项目技术分析 Kimi的核心特性包括: lambda表达式:支持...

gitblog_01146的博客 594

【OpenClaw企业级智能体实战】第09篇:OpenClaw金融投研实战:17个场景+完整代码,打造专属数字研究员

金融投研面临信息过载、流程重复、数据安全合规三大核心痛点,OpenClaw作为本地部署的新一代AI智能体,凭借“长期记忆+主动执行+数据不出域”的优势,成为券商分析师集体追捧的效率工具。本文基于8家头部券商公开研报,拆解OpenClaw在金融投研的17个核心应用场景(信息处理、研报撰写、量化策略、流程自动化),详解原理、技术选型、实操流程,并提供可直接运行的完整代码与执行结果。文章兼顾新手入门与进阶提升,强调安全隔离部署与幻觉防范,读者可按步骤搭建专属投研智能体,将信息处理、数据整理等重复工作效率提升80%

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 674

前端程序员学习Python的极简入门

Python 是一种高级编程语言,以其简洁易读的语法和强大的功能受到广泛欢迎。对于前端程序员来说,学习 Python 可以扩展技能集,帮助你处理后端开发、数据分析、自动化脚本等任务。

cuijiying的博客 2001

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

学习笔记1:Python FastAPI极简后端API示例解析

本文介绍了使用Python的FastAPI框架快速构建极简后端API服务的示例代码。通过十几行代码实现了两个HTTP接口:根路径返回"Hello World",另一个接口通过路径参数实现个性化问候。文章详细解析了代码结构,包括FastAPI实例创建、路由装饰器、异步函数、类型注解等核心概念,并用通俗语言解释了专业术语。最后提供了运行方式说明,包括依赖安装、启动命令和接口测试方法。该示例展示了FastAPI框架的简洁高效特性,适合初学者快速入门后端开发。

2402_88038551的博客 510

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

轻量化后端服务设计:Node.js与Python的极简API架构实践

极简后端就图个"够用":函数代替类,模块代替框架,SQL代替ORM。Handler保持纯函数,业务逻辑能单独测、随便迁。等业务复杂了,再按需加Service层、ORM或微服务,别一开始就堆全套架构。独立产品的后端,得为快速验证服务,不是用来秀架构的。质量评分维度评估标准得分直接性直接陈述事实还是绕圈宣告?9/10节奏句子长度是否变化?8/10信任度是否尊重读者智慧?9/10真实性听起来像真人说话吗?8/10精炼度还有可删减的内容吗?8/10总分42/50。

weixin_63764436的博客 1682

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

5分钟用Python main函数验证你的想法

这时候,搭建完整的项目结构往往耗时费力,而一个简单的Python脚本配合main函数就能帮我们快速实现原型验证。它的在线编辑器响应迅速,无需配置环境就能直接运行Python代码,而且可以一键保存和分享你的原型。对于需要展示界面或持续运行的项目,还能使用平台的部署功能,将验证结果快速转化为可分享的演示。在原型阶段,建议使用简单的输入方式,比如直接在代码中定义变量,或者使用input()函数获取用户输入。虽然这种快速验证方式很便捷,但要注意:当项目规模扩大时,还是应该考虑更合理的项目结构。

JetRaven12的博客 761

探索Kimi:一款简洁明了的玩具编程语言

探索Kimi:一款简洁明了的玩具编程语言 项目简介 Kimi 是一个由Anjana Vakil在Recurse Center设计的、基于Python 3解释器的简约编程语言。它的灵感来源于一场关于小型、优雅语言的讲座,旨在展示即使是最基础的功能也能构建出强大的工具。这个项目不仅是一个学习编程语言构造的实验,也是一个实践编程思维和Python知识的好平台。 项目技术分析 Kimi的基础特征非常精炼,...

gitblog_00068的博客 956

极简编码艺术:91行代码挑战与高效编程技巧

代码压缩与极简编程是提升开发者算法设计和工程实践能力的重要技术。通过深度挖掘编程语言特性(如Python的生成器表达式、JavaScript的箭头函数)和数学建模,开发者可以在严格的行数限制内实现复杂功能。这类技术在代码高尔夫竞赛和91行代码挑战等场景中尤为重要,既能提高代码执行效率,又能培养创造性思维。实战中,正则表达式复用、状态标志位等技巧可大幅减少代码量,而结构化数据驱动开发则能实现业务逻辑的优雅表达。掌握这些方法对开发图像编辑器、游戏引擎等需要高性能和简洁代码的项目具有显著价值。

weixin_30835649的博客 358

在 Python 中,logging模块和print函数都可以用于输出信息,但它们的设计目的、功能和适用场景有本质区别。下面从多个维度对比两者的核心差异:

函数都可以用于输出信息,但它们的设计目的、功能和适用场景有本质区别。:仅输出原始字符串,格式完全依赖手动拼接,缺乏元信息。,可包含时间、模块名、级别等元信息,便于定位问题。(控制台、文件、网络等),且可分别配置格式和级别。,会导致输出混乱(如调试信息淹没关键错误信息)。无法区分信息的重要性,若代码中充斥大量。:功能极简,仅能输出字符串,无扩展能力。,可根据需求灵活控制输出内容。),且无法同时输出到多个目标。),可以过滤掉低级别信息(如。在 Python 中,,所有内容都会被输出。),仅保留重要内容。

mayaohao的博客 575

【实战智能体】《大模型应用开发_动手做AI_Agent》_162.[第9章 GitHub网红Agent项目] BabyAGI简介——用任务队列驱动的极简Agent

BabyAGI任务队列驱动诞生背景"AutoGPT的'笨重'对比""Yohei的极简执念""2023年AI Agent元年"核心架构"三大组件循环""任务队列优先级""向量存储记忆"代码拆解"主循环流程图""四个关键函数""Prompt设计艺术"运行原理"创建-执行-排序-清理""自我进化机制""上下文压缩策略"设计哲学"Unix哲学:做一件事做好""复杂度守恒定律""可组合性优先"实践价值"新手最佳学习样本""扩展改造方向""生产环境局限"目录嗨,大家好呀,我是你的老朋友精通代码大仙。接下来我们一起学习

278
上一篇: Python 极简核心:数据类型
下一篇: Python 极简核心·总章
Robin_Pi
博客等级 码龄9年 2万+粉丝 632原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值