从函数签名说普通人 AI 编码提示指南
目录
一、函数签名的定义与组成部分
函数签名就像是一个函数的身份证,它包含了函数的名字、参数以及返回值类型等关键信息,让程序员和计算机都能快速了解这个函数是干什么的、需要什么输入、会输出什么结果。
函数是什么
-
定义
- 数学中的函数:给定一个输入值(如 x),通过特定的规则或公式计算出一个输出值(如 y)。例如,
y = 2x + 1
,当输入 x 为 3 时,输出 y 为 7。 - 编码中的函数:类似于数学函数,它接受一些输入(称为参数),按照设定的逻辑进行处理,然后返回一个结果。例如,一个函数可能接受两个数字作为输入,然后返回它们的和。
- 数学中的函数:给定一个输入值(如 x),通过特定的规则或公式计算出一个输出值(如 y)。例如,
-
作用
- 在数学中,函数简化了复杂的计算过程。
- 在编码中,函数用来组织代码,使程序更易于理解和维护。它可以重复使用,避免重复编写相同的逻辑。
-
例子对比
-
数学:
f(x) = x^2
,输入 x=4,输出 16。 -
编码(以 Python 为例):
def square(x): return x * x result = square(4) print(result) # 输出 16
其中
square
函数接受一个参数 x,并返回 x 的平方。
-
-
扩展性
- 数学函数通常只处理数值。
- 编码中的函数可以处理各种类型的数据,比如文字、列表、对象等,甚至可以没有输入或输出。
总结来说,编码中的函数就像一个“小机器”,你给它一些原料(输入),它按照设定的规则加工后,给你一个成品(输出)。
函数名
函数名是函数的称呼,它简洁地表达了函数的主要功能,比如一个用于计算两个数之和的函数可能会被命名为add
,看到这个名字就能大概猜到这个函数是用来做加法运算的。
参数
参数是函数在执行时需要的外部输入,它们是函数完成特定任务所必需的数据。参数包括参数名和参数类型。
-
参数名
就像是给输入的数据起的别名,方便在函数内部引用这些数据,例如在
add
函数中可能会有参数a
和b
,分别代表要相加的两个数。 -
参数类型
规定了参数的数据类型,比如整数、浮点数、字符串等。这有助于确保传入的数据是函数能够正确处理的格式,避免出现类型错误导致程序出错。例如,如果一个函数的参数类型是整数,而你传入了一个字符串,程序在运行时可能会报错。
返回值类型
返回值类型指定了函数执行完毕后输出结果的数据类型。它告诉调用者函数会返回什么样的数据,方便调用者后续对返回值进行处理。例如,add
函数的返回值类型可能是整数,因为两个整数相加的结果还是整数。
二、结构化提示词映射函数签名及任务
首先我们将 AI 要生成的代码当做一个黑盒。黑盒就类似一个函数,会有一头的输入和另一头的输出,中间黑盒是代码逻辑,对输入数据进行多个步骤的处理,最终得到一个或多个要输出的数据,这个数据就是我们需要想要的结果。
我们可以将这个黑盒当做代码中的函数。
为了让 AI 准确理解你的需求并编写出符合要求的代码,你需要提供一个结构化的提示词,将函数签名的各个部分以及函数要执行的任务步骤清晰地描述出来。
描述函数功能
用简洁明了的语言说明函数要实现什么功能,例如“编写一个函数,用于计算两个数的和”。
指定函数签名
根据函数功能,推测并描述出函数的签名。
- 函数名 :根据功能描述,给函数起一个合适的名字,比如“add”。
- 参数 :明确函数需要哪些参数,包括参数名和参数类型。例如,“参数为两个整数 a 和 b”。
- 返回值类型 :说明函数返回值的类型,例如“返回值为一个整数,表示两个数的和”。
阐述任务步骤
详细描述函数内部要执行的操作步骤,让 AI 清楚函数的逻辑流程。例如,“在函数内部,将参数 a 和 b 相加,然后将结果返回”。
三、示例:让 AI 编写简单功能函数的提示词
假设我们要编写一个函数,用于计算一个数的平方。
提示词 :
“请帮我编写一个函数,功能是计算一个数的平方。函数名为 square,参数是一个整数 num,返回值是一个整数,表示 num 的平方。函数内部的操作步骤是:将参数 num 与自身相乘,得到结果后返回。”
如果要写一个完整可执行的 python 代码,可以这样写:
“请帮我编写可执行完整 python 代码,包含 main 入口,功能是计算一个数的平方。函数名为 square,参数是一个整数 num,返回值是一个整数,表示 num 的平方。函数内部的操作步骤是:将参数 num 与自身相乘,得到结果后返回。”
四、AI 辅助编码的提示词模板
“请帮我编写一个函数,功能是 [简要描述函数功能]。函数名为 [函数名]。参数包括 [参数 1 名](类型为 [参数 1 类型])、[参数 2 名](类型为 [参数 2 类型])……。返回值类型为 [返回值类型]。函数内部的操作步骤如下:[详细描述函数要执行的每一步操作]。”
五、代码提示词表单
有了模板,就可以采用结构化表单填充的方式,快速地填写好函数签名和任务步骤描述,让 AI 辅助编写符合要求的函数代码。勤快的平台已经制作了模板,调教好了一个函数代码的提示词对话。我们比较懒。
给个表单定义:
- 简述功能。描述你要完成什么任务,浓缩成一个标题,方便 AI 根据标签来定义函数或模块名称。
- 输入。描述你提供的数据,可以追加多个数据,并选择数据类型,让 AI 知道如何定义入参。
- 返回值。描述你想要得到的数据,并选择数据类型,让 AI 知道如何定义出参。
- 步骤。描述函数内部要执行的操作步骤,可以追加多个步骤,让 AI 清楚函数的逻辑流程。
范例:
你的一名出色的python工程师,请按照以下描述编写出完善可执行的代码,包含main入口。并确保代码符合PEP8规范及安全。
简述功能:简易计算器,支持加减乘除
输入:
- a:整数
- b:整数
- operator:整数,运算符(+、-、*、/)
输出:
- result:整数
步骤:
1. 根据 operator 的值,选择对应的运算方式,并计算结果。
代码生成:
def add(a, b):
"""返回两个数的和"""
return a + b
def subtract(a, b):
"""返回两个数的差"""
return a - b
def multiply(a, b):
"""返回两个数的积"""
return a * b
def divide(a, b):
"""返回两个数的商,处理除以零的情况"""
if b == 0:
raise ValueError("除数不能为零")
return a / b
def calculate(a, b, operator):
"""
根据运算符执行相应的运算
:param a: 整数
:param b: 整数
:param operator: 运算符(+、-、*、/)
:return: 运算结果
"""
operations = {
'+': add,
'-': subtract,
'*': multiply,
'/': divide
}
if operator not in operations:
raise ValueError("无效的运算符,请使用 +、-、* 或 /")
return operations[operator](a, b)
def main():
try:
a = int(input("请输入第一个整数 a: "))
b = int(input("请输入第二个整数 b: "))
operator = input("请输入运算符 (+、-、*、/): ")
result = calculate(a, b, operator)
print(f"结果:{result}")
except ValueError as e:
print(f"输入错误:{e}")
if __name__ == "__main__":
main()
代码说明:
1、函数定义:定义了四个基本运算函数 add、subtract、multiply、divide。
2、运算选择:calculate 函数根据传入的运算符选择相应的运算函数进行计算。
3、异常处理:在 divide 函数中处理了除以零的情况,在 calculate 函数中处理了无效运算符的情况。
4、主函数:main 函数负责获取用户输入并调用 calculate 函数进行计算,同时捕获并处理可能的异常。
5、入口点:if name == “main":确保代码作为脚本运行时执行 main 函数。
这样设计的代码既符合 PEP8 规范,又保证了程序的安全性和健壮性。
通过以上对函数签名的解释、结构化提示词的映射以及示例和模板的提供,小白可以更好地理解如何让 AI 辅助编写功能代码,即使不懂计算机知识,也能通过清晰地描述需求,让 AI 准确地生成符合要求的函数代码。
重点:
- 提供准确及足够的上下文。
- 使用更牛逼的大模型。
9ong@TsingChan 文章内容由 AI 辅助生成。