函数如下: def showNumber(numbers): for n in numbers: print(n) 下面那些在调用函数时会报错( ) A showNumber([2,4,5]) B showNumber(‘abcesf’) C showNumber(3.4) D showNumber((12,4,5))
时间: 2024-04-06 21:34:47 浏览: 89
答案是 B showNumber(‘abcesf’),因为字符串属于序列类型,但是其中每个元素是字符,不是整数或浮点数,所以在执行print(n)时会报TypeError类型错误。其他选项都是合法的调用方式:A选项传入的是一个整数列表,可以正常执行;C选项传入的是浮点数,可以正常执行;D选项传入的是元组,可以正常执行。
相关问题
定义一个类RANK,对len个成绩进行排名。例如,成绩为{95, 93, 94, 90,97, 93, 95, 96},则对应名次为{3, 6, 5, 8, 1,6, 3, 2}。具体要求如下: (1)私有数据成员 double * a; // 用动态内存(数组)存放成绩。 int * b; // 用动态内存(数组)存放名次。 int len; // 数组a和b中实际元素的个数。 (2)公有成员函数 RANK(double * x, int n); // 构造函数。为数组a和b动态分配存储空间,用x和n初始化数组a和整数len,初始化数组b。 void number( ); // 根据数组a的元素求数组b对应元素的值。 void showdata( ); // 输出成绩(数组a的元素值),注意输出格式。 void shownumber( ); // 输出名次(数组b的元素值),注意输出格式。 ~RANK(); // 释放相应的动态存储空间。 (3)在主函数中定义一个实型数组并初始化(测试数据为{95, 93, 94, 90,97, 93, 95, 96}),用该数组作为成绩初始化一个RANK对象,调用相关成员函数完成对类RANK的测试。
好的,以下是代码实现:
```cpp
#include<iostream>
#include<iomanip>
using namespace std;
class RANK{
private:
double * a; // 用动态内存(数组)存放成绩。
int * b; // 用动态内存(数组)存放名次。
int len; // 数组a和b中实际元素的个数。
public:
RANK(double * x, int n){ // 构造函数。为数组a和b动态分配存储空间,用x和n初始化数组a和整数len,初始化数组b。
len = n;
a = new double[len];
b = new int[len];
for(int i = 0; i < len; i++){
a[i] = x[i];
b[i] = 0;
}
}
void number( ){ // 根据数组a的元素求数组b对应元素的值。
for(int i = 0; i < len; i++){
for(int j = 0; j < len; j++){
if(a[j] > a[i]){
b[i]++;
}
}
b[i]++;
}
}
void showdata( ){ // 输出成绩(数组a的元素值),注意输出格式。
cout << "成绩为:";
for(int i = 0; i < len; i++){
cout << fixed << setprecision(1) << a[i] << " ";
}
cout << endl;
}
void shownumber( ){ // 输出名次(数组b的元素值),注意输出格式。
cout << "名次为:";
for(int i = 0; i < len; i++){
cout << b[i] << " ";
}
cout << endl;
}
~RANK(){ // 释放相应的动态存储空间。
delete[] a;
delete[] b;
}
};
int main(){
double x[] = {95, 93, 94, 90, 97, 93, 95, 96};
int n = sizeof(x) / sizeof(x[0]);
RANK rank(x, n);
rank.showdata();
rank.number();
rank.shownumber();
return 0;
}
```
输出结果为:
```
成绩为:95.0 93.0 94.0 90.0 97.0 93.0 95.0 96.0
名次为:3 6 5 8 1 6 3 2
```
希望能够帮到你!
showNumber(3.4)为什么错
`showNumber(3.4)` 函数调用之所以出错,可能有以下几种原因:
1. `showNumber()` 函数未被定义:如果该函数未被定义,Python 解释器会抛出 `NameError` 异常,提示该函数未定义。
2. 函数名错误:如果函数名错误,Python 解释器会抛出 `NameError` 异常。
3. 参数类型错误:如果函数 `showNumber()` 的参数类型为整数,而调用时传入了浮点数,Python 解释器会抛出 `TypeError` 异常,提示参数类型错误。
4. 函数实现错误:如果函数 `showNumber()` 的实现存在语法错误或逻辑错误,Python 解释器会抛出 `SyntaxError` 或 `RuntimeError` 异常,提示代码存在错误。
根据函数名和参数,我无法判断具体出错的原因,需要查看完整的代码和错误提示信息才能确定。如果您能提供完整的代码和错误提示信息,我可以帮助您定位问题所在。
阅读全文