Làm việc trên một dự án Python cho CS1, và tôi đã đi qua một vấn đề kỳ lạ mà cả tôi hoặc tôi đều không thể tìm ra. Phạm vi chung của mã là để điền vào một mạng lưới 0 với hình dạng của một kích thước nhất định bằng cách sử dụng số để lấp đầy không gian, và chúng tôi phải kiểm tra trên đường đi để đảm bảo rằng chúng tôi arent đặt hình dạng ở những nơi đã có hình dạng. Tôi có hai chức năng ở đây, cả hai thực hiện hầu như cùng một điều, nhưng vì lý do gì khi falsechecker trả về danh sách nó trả về nó như là một NoneType. Tại sao chuyện này đang xảy ra?Chức năng Trả về NoneType bằng Python?
def falseChecker(binList, r, c, size):
sCheck = isSpaceFree(binList, r, c, size)
if sCheck == True:
for x in range(c, c+size):
for y in range(r, r+size):
binList[x][y] = size
return binList
else:
c += 1
if c > len(binList):
c = 0
r += 1
if r > len(binList):
return binList
falseChecker(binList, r, c, size)
def iChecker(binList, blockList):
r = 0
c = 0
for i in blockList:
check = isSpaceFree(binList, r, c, i)
if check == True:
for x in range(c, c+i):
for y in range(r, r+i):
binList[x][y] = i
c += 1
if c > len(binList):
c = 0
r += 1
if r > len(binList):
return binList
else:
binList = falseChecker(binList, r, c, i)
return binList
main()
@Everybody: Có bản sao chính thức cho chung hay không "Tôi đã viết một hàm đệ quy nhưng không trả về giá trị từ một trong các câu hỏi đệ quy"? – DSM
Là một lưu ý phụ, 'if sCheck:' tốt hơn 'if sCheck == True:' trong hầu hết mọi tình huống (bao gồm cả tình huống này). – abarnert
@abarnert "gần như"? Có * bất kỳ tình huống nào trong đó '== True' được ưu tiên không? – lvc