def count(squence,item):
count=0
i=0
for item in squence:
if item == squence:
count+=1
print count
count([1,7,8,7,7],7)
我不明白为什么If语句不起作用:( 谢谢,
答案 0 :(得分:3)
list
已有函数count()
:[1,7,8,7,7].count(7)
返回3
但你要做的是:
def count(squence, item):
cnt = 0
for i in squence:
if i == item:
cnt += 1
print cnt
在您的代码中,您覆盖item
:item
是您要计算的值,但它也是您检查的值,因此它不起作用...
答案 1 :(得分:1)
您正在覆盖您要检查的变量。您还需要将目标项目与序列中的项目进行比较。以下代码有效。
def count(squence,target):
count=0
i=0
for item in squence:
if target == item:
count+=1
print count
count([1,7,8,7,7],7)
答案 2 :(得分:0)
为什么不在python中使用count方法?除非你这样做是练习,否则使用pythons标准函数是正确的,对吗?
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class A
{
string name;
int rollno;
public:
void setdata();
void display();
void Check();
};
void A::setdata()
{
cout<<"enter name"<<endl;
cin>>name;
cout<<"enter rollno"<<endl;
cin>>rollno;
}
void A::display()
{
cout<<name<<" "<<rollno<<endl;
}
void A::Check()
{
A a;
ifstream file;
file.open("aa.txt",ios::in);
while(!file.eof())
{
file.read((char*)&a,sizeof(a));
a.display();
}
}
class B
{
public:
void enter();
};
void B::enter()
{
A a;
ofstream file;
file.open("aa.txt",ios::out);
a.setdata();
file.write((char*)&a,sizeof(a));
}
int main()
{
A a1;
B b1;
b1.enter();
a1.Check();
}