首页 > 解决方案 > 嵌套for循环中的python数组

问题描述

我正在尝试创建一个运算符,用户在其中输入棋盘上的位置,如果它站在黑色或白色方块上,我的程序将打印出来。问题是我的 if 语句不会正确地通过我的数组。

pos = input (f'Hvilken posisjon står brikken på? ') 

bokstav = pos[0]                

tall = int(pos[1])              

for x in bokstav:
  for y in str(tall):
    
    partall_svart = ['b','d','f','h']
    partall_hvit = ['a','c','e','g']

    print (partall_svart)
    print (partall_hvit)
    
    if x == partall_svart and int(y) % 2 == 0:
        print (f'Posisjon: {bokstav}{tall}\nSvart')
    
    elif x == partall_svart and int(y) % 2 == 1:
        print (f'Posisjon: {bokstav}{tall}\nHvit')
    
    if x == partall_hvit and int(y) % 2 == 0:
        print (f'Posisjon: {bokstav}{tall}\nHvit')
    
    elif x == partall_hvit and int(y) % 2 == 1:
        print (f'Posisjon: {bokstav}{tall}\nSvart')

标签: pythonarraysif-statement

解决方案


实际上,您也可以从字母部分制作一个数字,然后%2在两个部分上使用。由于 ekhumoro 的建议ord()可能有点深奥,因此此代码find()改用:

pos = input (f'Hvilken posisjon star brikken pa? ')

bokstav = pos[0]                
bokstavtall = "abcdefgh".find(bokstav.lower()) + 1

tall = int(pos[1])              

print (f'Posisjon: {bokstav}{tall}\n{"Svart" if tall % 2 == bokstavtall % 2 else "Hvit"}')

推荐阅读