我有一个数据列表
set1 = [1,2,3,4,5,6,7,8]
,然后请用户输入。 (假设我已经建立了一种方法来检查输入是否有效)
user_input = int(input('Insert a number'))
我想检查用户输入是否已经存在于上面的列表中。如果是这样,那么将要求用户重复输入一个数字,直到该数字不在给定列表中,并且输入内容将存储到另一个列表中。
new_list = []
new_list.append(user_input)
我已经尝试过使用单个“ for”循环,但是当用户反复插入相同的现有值时,它不能很好地工作。
答案 0 :(得分:0)
我觉得这里的主要问题是如何建立循环...
对于 #include <iostream>
#include <string.h>
class Student{ //student class with constant variable
private:
const int roll;
char *name;
float grade;
public:
Student(int num):roll(num),name("NULL"),grade(0.0){}; /* for const variable initializer.*/
Student(const Student &obj )
{
cout<<"copy Constructor "<<endl;
int stSize;
stSize=strlen(obj.name);
name= new char[stSize+1];
strcpy(name,obj.name);
grade=obj.grade;
}
void setStudent(char *nam,float grd){
cout<<"Setting Student"<<endl;
int stSize=strlen(nam);
name=new char[stSize+1];
strcpy(name,nam);
grade=grd;
}
void getStudent()const{
cout<<"Roll Number is :"<<roll<<endl;
cout<<"Student Name is :"<<name<<endl;
cout<<"Grade is :"<<grade<<endl;
}
~Student(){
delete[] name;
}
};
int main()
{
Student a(10);
a.setStudent("Adnan", 3.2);
a.getStudent();
Student b(12)=a; // this is where copy constructor should be shown.
Student c(11);
c.getStudent();
b.getStudent();
return 0;
}
,您可以使用set1
,因为您要查找唯一的数字。然后,只有当用户输入不在集合中的数字时,才可以使用外观和set
。
最后,当用户输入的值无法转换为break
时,您会遇到这种情况,因此程序不会突然退出。
int