gpt4 book ai didi

python - 带有 if 语句的主循环无法正常工作

转载 作者:行者123 更新时间:2023-11-28 17:29:06 24 4
gpt4 key购买 nike

代码:

def nChar(nc):
grid = len(nc)
chars = set()
for line in nc:
line = set(line)
if len(line) != grid or len(chars) != grid:
return False
return True

怎么了?当我打开一个看起来像的文件时

ABC
BCA
CAB

它应该没问题,因为它是一个 n x n 正方形(gridValidation)并且恰好有 n 个不同的字符(nChar - 代码中的问题)。

对于我正在使用的 gridValidation

except ValueError: print("error")

而且效果很好。

对于我使用的 nChar:

if not nChar(latinsq):
print ("File does not have n different characters.")
break
else:
continue

如果我输入文件名示例:ABC,它会不断重复“输入文件名”。它与 def nChar 或我在主循环中使用它的方式有关。

没有 n x n 的一个文件的例子:

ABC
BCA
CAB
D

没有 n 个不同字符的示例文件。

ABD
BCA
CAB

^有 4 个不同的字符,但它是 3x3。

我希望有人能解释我做错了什么,这样我就可以了解我做错了什么并解决问题。

很重要。

编辑:我通读了我的帖子,但没有任何意义。

问题是当我执行代码并输入文件名时,它一直说“输入文件名”。

最佳答案

您的第一个问题是您在 if not nChar(latinsq): block 中说 else: continue 。如果你到了那个点,要么方 block 错了你就破了,要么方 block 是对的你不破。您应该更改 if block 以使用 continue,并一起删除 else block 。你的第二个问题是 nChar() 没有返回正确的东西。它总是检查中的唯一字符数是否多于行数,但您看不到字符数是否太多.您可以像这样检查所有内容:

def nChar(nc):
grid = len(nc)
chars = set()
for line in nc:
line = set(line)
chars = chars.union(line)
if len(line) != grid or len(chars) != grid:
return False
return True

关于python - 带有 if 语句的主循环无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35896263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com