043.Return Type 函数的返回值

---------------   main.m   ---------------
#import  <Foundation/Foundation.h>

int  test( int  price ,  double  discount)
{
   
  return  price * discount;
}
int  main()
{
    NSLog(@"%d", test(1, 0.8));
}

一、编写本节代码的具体步骤:
1.参照003节的代码编写步骤。

二、本节代码涉及到的知识点:
1.虽然函数中代码运行的结果是一个double类型的数据,
  但由于声明函数时指定了该函数的返回值是int类型,
  所以,最终系统会把返回值转换成int类型。
2.如果一个函数中没有return语句,并不代表该函数没有返回值。
  它只是返回一个不确定的,不一定有用的值。
3.如果希望一个函数没有返回值,那么一定要用void来声明。
`hp.process()` 函数的参数和返回值定义如下: **参数:** - `fn`:一个 Python 可调用对象,表示目标函数。该函数应该接受一个参数 `params`,其中包含要优化的超参数,并返回一个浮点数值,表示在这些超参数下目标函数的值。其定义为:`fn(params) -> loss`,其中 `params` 是一个字典,包含要优化的超参数,`loss` 是一个浮点数值,表示在这些超参数下的目标函数值。 - `space`:一个 Hyperopt 中的 Pyll 表达式,表示一个(可能是条件的)超参数空间,用于优化。例如,可以使用 `hp.uniform()` 定义一个连续的均匀分布超参数空间。 - `algo`:一个搜索算法对象,定义了搜索策略。该算法应该有一个 `suggest` 方法,它接受一个 `trials` 参数,返回一组要评估的超参数。 - `max_evals`:最大评估次数。当评估次数达到该值时,将停止优化过程。 - `trials`:一个 `Trials` 对象,用于存储每个评估的详细信息,并提供与 Hyperopt 进行交互的界面。 - `rstate`:一个 numpy 的 `RandomState` 实例,用于执行随机采样。 - `verbose`:控制输出信息的详细程度。默认值为 0,表示不输出任何信息;1 表示只输出状态更新;2 表示输出状态和结果。 - `catch_eval_exceptions`:如果为 True,则捕获由目标函数 `fn` 抛出的异常,并在相应的评估记录中存储异常信息。 - `return_argmin`:如果为 True,则返回最优点的超参数。否则,返回每个评估点的超参数和对应的值。 **返回值:** 函数返回值可以是最优点的超参数(如果 `return_argmin` 为 `True`),或者每个评估点的超参数和对应的值(如果 `return_argmin` 为 `False`)。如果 `catch_eval_exceptions` 为 True,则可能会在返回值中包含有关每个评估记录中出现的异常的信息。具体而言,如果 `return_argmin` 为 True,则返回一个字典,表示最优点的超参数和目标函数值,例如: ```python {'loss': 0.12345, 'status': 'ok', 'params': {'x': 0.67890, 'y': 1.23456}} ``` 其中,`loss` 表示在最优点下的目标函数值,`params` 表示最优点的超参数。如果 `return_argmin` 为 False,则返回一个列表,其中每个元素都是一个字典,表示每个评估点的超参数和目标函数值。 如果 `catch_eval_exceptions` 为 True,则还可能包含有关每个评估记录中出现的异常的信息,例如: ```python {'status': 'fail', 'misc': {'exception': {'traceback': '...', 'type': 'SomeError', 'message': '...'}}} ``` 其中,`status` 表示评估状态,`misc` 表示其他信息。如果评估过程中出现了异常,则 `misc` 中将包含一个 `exception` 字段,其中包含有关异常的信息,例如 `traceback`、`type` 和 `message`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值