我对 Python 很陌生。
我坚信简单、简洁、高效的算法设计和编码风格。在学习 Python 的过程中,我意识到 Python 在幕后做了很多事情,因此语言本身对程序员非常友好。这很好,但我想深入了解我可以做哪些优化或在编码时保持习惯。今天我在简化代码时遇到了麻烦。
以下函数用于根据选择的难度级别在数独板上创建空白点。
这是我的代码:
class normalSudoku(Board):
def __init__(self,difficulties):
super.__init__()
self.Create_Empty_Entries(difficulties)
def Create_Empty_Entries(self,difficulties):
numbers = list(range(0,9))
if difficulties == "Easy":
for x in range(25):
a,b = choice(numbers),choice(numbers)
if self.sudoku[a][b] != None:
self.sudoku[a][b] = None
self.holes += 1
self.holes += 1
return None
elif difficulties == "Medium":
for x in range(35):
a,b = choice(numbers),choice(numbers)
if self.sudoku[a][b] != None:
self.sudoku[a][b] = None
self.holes += 1
return None
elif difficulties == "Hard":
for x in range(45):
a,b = choice(numbers),choice(numbers)
if self.sudoku[a][b] != None:
self.sudoku[a][b] = None
self.holes += 1
return None
else:
for x in range(65):
a,b = choice(numbers),choice(numbers)
if self.sudoku[a][b] != None:
self.sudoku[a][b] = None
self.holes += 1
return None
如您所见,它非常重复。任何关于简化它或更有效的编码风格的想法都会受到赞赏。
另外,有没有更好的方法在 python 中初始化一个类,而不是__init__()
在性能和内存使用方面调用?就像在 C++ 中一样,有一个初始化列表,它更干净、更快。
请随时指出我所犯的错误。任何建议将不胜感激。谢谢