python中嵌套forloops中的数组

2024-06-16 19:16:04 发布

您现在位置: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')

Tags: andinposforifintprintelif
1条回答
网友
1楼 · 发布于 2024-06-16 19:16:04

实际上,您也可以从字母部分生成一个数字,然后在两个部分上使用%2。由于Ekhumaro对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"}')

相关问题 更多 >