协助python和运算符

时间:2019-03-26 00:02:26

标签: python operators

我正在尝试创建一个类似python中的战舰的程序(业余爱好者)。我已经尝试了一些方法,即使在条件匹配的情况下,我也似乎无法弄清为什么该程序会返回miss。我在这里想念什么?谢谢

import random
import os
import time


XAXIS = [1,2,3,4,5,6,7,8,9,10]
YAXIS = [1,2,3,4,5,6,7,8,9,10]


########Generate Test Enemy Position
enemyPosX = random.randrange(1,len(XAXIS))
enemyPosY = random.randrange(1,len(YAXIS))


print(enemyPosX)
print(enemyPosY)





looping = True
while looping:
    xAim = input("set X gun position (1-10):: ")
    yAim = input("set Y gun position (1-10):: ")

    xAim = int(xAim)  #thought maybe I was comparing string to int
    yaim = int(yAim)

    print("{} {} :: {} {} ".format(enemyPosX, xAim, enemyPosY, yAim)) # Check Values for problem

    if (xAim == enemyPosX) and (yAim == enemyPosY): #<---- Should both return true but nope
        print("HIT!!!")
        time.sleep(3)
        looping = False
    else:
        print("MISS!!") #<--Getttin Miss regardless of Input
        ```

1 个答案:

答案 0 :(得分:0)

这是您的问题。

yaim = int(yAim)

注意大小写差异。 因此,在if语句的条件下,您正在比较yAim(仍然是字符串)和敌人PosY(它是整数),这将导致它为False

if (xAim == enemyPosX) and (yAim == enemyPosY):