N-Queen Problem求解代码if判断失效,奇数输入无提示输出问题排查
问题根因
- 最直接的错误是
if分支内的打印函数名拼写错误:Python 内置的打印方法是全小写的print(),你代码中写为了首字母大写的Print(),当输入奇数进入该分支时,程序会直接触发NameError报错终止,因此不会输出你预设的提示文本。 - 你的奇偶判断逻辑存在优先级隐患:位运算符
&的优先级低于比较运算符==,你写的n&1==1实际会被解析为n & (1 == 1),虽然当前场景下碰巧结果符合预期,但如果后续判断逻辑调整很容易出现bug,建议修改为(n & 1) == 1更严谨。
修复代码示例
x = 1 cnt = 1 i=1 j=1 location = 1 n = int(input("请输入棋盘维度和皇后数量:")) if (n & 1) == 1: print("皇后数量必须为偶数") else: while location < n: y = int(cnt +(n/2)) print(" 第",location,"号皇后位于:行",x,",列",y,"\n") i+=1 j+=1 x+=1 y =cnt cnt+=1 location+=1 print(" 第",location,"号皇后位于:行",x,",列",y,"\n") x+=1 # 原代码的location +=16属于逻辑错误,会导致循环提前终止,请根据你的放置逻辑修改为合理值 location +=1
内容的提问来源于stack exchange,提问作者razan
相关产品推荐
相关产品推荐

