每个用户在类中迭代的while循环数';python中的愿望
实际上,我正在尝试使用python编写一个简单的程序,希望用户根据自己的选择输入记录数。我在class每个用户在类中迭代的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循环中定义方法(与类关联的函数),因此实际上
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!!")