每个用户在类中迭代的while循环数';python中的愿望

每个用户在类中迭代的while循环数';python中的愿望,python,class,for-loop,while-loop,do-while,Python,Class,For Loop,While Loop,Do While,实际上,我正在尝试使用python编写一个简单的程序,希望用户根据自己的选择输入记录数。我在classno_rec中指定了一个单独的函数,首先指定记录的数量,然后使用while循环根据用户输入的次数在循环中继续 类帐户: def pd(自身、rno、名称): self.rno=rno self.name=name def no_rec(自身): 打印(“要输入的记录数:”) a=int(输入()) x=0 虽然(x这里有一些东西要看 首先,在while循环中定义方法(与类关联的函数),因此实际上

实际上,我正在尝试使用python编写一个简单的程序,希望用户根据自己的选择输入记录数。我在class
no_rec
中指定了一个单独的函数,首先指定记录的数量,然后使用while循环根据用户输入的次数在循环中继续

类帐户:
def pd(自身、rno、名称):
self.rno=rno
self.name=name
def no_rec(自身):
打印(“要输入的记录数:”)
a=int(输入())
x=0

虽然(x这里有一些东西要看

首先,在while循环中定义方法(与类关联的函数),因此实际上没有修改任何属性,只需反复重新定义函数


另一件事是你没有增加
x
,因此
while
循环永远不会中断,因为
x。这是一个非常好的开始资源,它将解释许多你似乎在这里挣扎的概念

你的代码有一些问题。首先,它是缩进。一个关于你需要做什么的最小示例新界要做的是:

class some_class():
    def __init__(self, foo):
        self.counter = 0
        self.foo = 2

    def do_something_once(self)
        print('Something was done')

    def do_something_number(self, number):
        for i in range(number):
            self.do_something_once()
            self.counter+=1

my_instance = some_class(8)
my_instance.do_something_once()
my_instance.do_something_number(5)
print(my_instance.counter)
一些注意事项:

如果您事先知道执行的次数,for循环非常适合,这样您就不会遇到忘记递增计数器的问题

在这种情况下,不需要在循环中定义函数,对于更复杂的情况,如果只定义一次函数并在循环中调用它,而不是在每次迭代中重新定义它,则可以节省内存和执行时间

如果您在另一个函数中定义了一个函数,那么它只能在该函数的作用域内被知道,并且除非您返回已定义的函数,否则您将无法从外部调用它。您可能不希望在示例中这样做

因此,应用于你的例子,答案是:

class account:
    def pd(self,rno,name):
        self.rno=rno
        self.name=name

    def inp_det(self):
        print("*************************Please Enter Records: ***************************** ")
        self.name=input("Enter Your Name:" )
        self.rno=input("Enter Your REG.NO: ")
        print("*****************************************************************************")

    def out_det(self):

        print("************************Your Entered Details Are:****************************")
        print("Reg.No: ",self.rno)
        print("Name: ",self.name)
        print("******************************************************************************")

    def no_rec(self):
        print("How Many Records you want to enter: ")
        a=int(input())
        for i in range(a):
            self.inp_det()

obj=account()  
obj.no_rec()
为了能够检索多个条目,您需要将条目存储在一个简单的整数变量以外的内容中,如列表。此外,您可能希望从
obj
重命名变量,请尝试以下操作:

def out_det(self):

    print("************************Your Entered Details Are:****************************")
    print("Reg.No: ",self.rno)
    print("Name: ",self.name)
    print("******************************************************************************")




def inp_det(self):
    print("*************************Please Enter Records: ***************************** ")
    self.name=input("Enter Your Name:" )
    self.rno=input("Enter Your REG.NO: ")

    print("*****************************************************************************")


def no_rec(self):

    print("How Many Records you want to enter: ")
    a=int(input())        

    while(x>0):
        self.inp_det()
        self.out_det()

        x -= 1
    else:
        print("NO!!")

相应地重构代码。这只是解决问题的参考。

您正在定义函数,但没有执行它们。在循环外部定义函数,并在内部运行它们,就像
inp挈det()
不要这样做:
print(*********************************请输入记录:**************************************”)
和这个
打印(**********************************************************************************************************************************************)
!改为这样做:
打印('Please Enter Records'.center(78,**')
和这个
打印('78)
更快乐!:-dwy你为什么要在
while
循环中一遍又一遍地重新定义函数
inp_det
out_det
?这比OP更糟糕。这只是为了不替换实际代码的想法。这甚至不起作用,因为缩进被破坏了。而且,你还在函数中定义函数,这是很可能不是OP想要的。我不是在函数内部定义函数,只是缩进错误。我只是想告诉ower将函数移动到外部级别,而不是将它们放入while循环本身。可能您误解了。您能告诉我如何在def out_det()中追加记录吗?
def out_det(self):

    print("************************Your Entered Details Are:****************************")
    print("Reg.No: ",self.rno)
    print("Name: ",self.name)
    print("******************************************************************************")




def inp_det(self):
    print("*************************Please Enter Records: ***************************** ")
    self.name=input("Enter Your Name:" )
    self.rno=input("Enter Your REG.NO: ")

    print("*****************************************************************************")


def no_rec(self):

    print("How Many Records you want to enter: ")
    a=int(input())        

    while(x>0):
        self.inp_det()
        self.out_det()

        x -= 1
    else:
        print("NO!!")