def earning_rate_compute(stock_data, stock_name): size = len(stock_data) earning_rate = (stock_data[size - 1] - stock_data[0])/ stock_data[0] * 100 print('%10s在2017年度的收益率为;%3.2f%%'%(stock_name,earning_rate)) #股票收益率计算 for i in range(0,6): earning_rate_compute(list_stock[i]['Close'],list_stock_name[i])翻译一下
时间: 2024-02-19 10:01:08 浏览: 54
这段代码定义了一个名为earning_rate_compute的函数,接受两个参数:股票数据stock_data和股票名称stock_name。函数计算股票在2017年的收益率,并打印输出股票名称和收益率。代码中使用了一个for循环,对6个股票分别调用earning_rate_compute函数,传入对应的股票数据和名称。
相关问题
4 0.0065351 5 0.0149833 6 0.0106633 7 0.0219868 8 0.0374301 9 0.0370351 10 0.0420972 11 0.0449133 12 这样的数据做earning_rate = '%.2f%%' % (earning_rate * 100)为什么报错cannot convert the series to <class 'float'>
这个错误是因为你在尝试将一个 Series 对象转换为 float 类型。在这里,错误可能是由于你没有选择正确的数据列。
你需要先将数据列选择出来,然后再使用 `.apply()` 函数将每个值乘以 100。例如,如果你想要将第二列数据转换为百分比:
```
# 选择第二列数据
data = df.iloc[:, 1]
# 将每个值乘以 100
data = data.apply(lambda x: x * 100)
# 将数据格式化为百分比字符串
data = data.apply(lambda x: '%.2f%%' % x)
```
这样就可以将数据列转换为百分比字符串了。你可以根据需要修改代码来选择正确的数据列。
#include<iostream> #include<stdlib.h> #include<string> using namespace std; //请在此处完成YearWorker,MonthWorker,WeekWoker及Company类的编码 /***********begin***********/ class Employee { public: virtual double earning()=0; }; class WeekWorker:public Employee { double earning(){ return 580*52; } }; class MonthWorker:public Employee { double earning(){ return 2500*12; } }; class YearWorker :public Employee { double earning(){ return 22000; } }; class Company{ private: Employee* employees[30]; public: void salarypay(); }; void salariesPay() { } } /************end**********/ int main() { Company co; for(int i=0;i<30;i++) { int r=rand()%3+1; switch (r) { case 1: co.emp[i]=WeekWorker(580); break; case 2: co.emp[i]=MonthWorker(2500); break; case 3: co.emp[i]=YearWorker(22000); break; default: break; } } cout<<"company total pay="<<co.salarypay(); return 0; }
这段代码存在一些错误,需要进行修改。首先,类的定义需要放在 main 函数前面,而不是在函数内部。其次,在 Company 类中,函数名称应该是 `salarypay` 而不是 `salariesPay`。最后,在 Company 类中,需要将 `employees` 数组中的指针初始化为 NULL,否则在 `salarypay` 函数中可能会出现错误。
下面是修正后的代码:
```
#include<iostream>
#include<stdlib.h>
#include<string>
using namespace std;
class Employee {
public:
virtual double earning() = 0;
};
class WeekWorker : public Employee {
public:
double earning() {
return 580 * 52;
}
};
class MonthWorker : public Employee {
public:
double earning() {
return 2500 * 12;
}
};
class YearWorker : public Employee {
public:
double earning() {
return 22000;
}
};
class Company {
private:
Employee* employees[30] = { NULL };
public:
void salarypay();
};
void Company::salarypay() {
double total_pay = 0.0;
for (int i = 0; i < 30; i++) {
if (employees[i] != NULL) {
total_pay += employees[i]->earning();
}
}
cout << "company total pay=" << total_pay << endl;
}
int main() {
Company co;
for (int i = 0; i < 30; i++) {
int r = rand() % 3 + 1;
switch (r) {
case 1:
co.employees[i] = new WeekWorker();
break;
case 2:
co.employees[i] = new MonthWorker();
break;
case 3:
co.employees[i] = new YearWorker();
break;
default:
break;
}
}
co.salarypay();
return 0;
}
```
修改后的代码可以正常编译运行,并输出公司总工资。
阅读全文