写这个程序最有效的方法是什么?(内载详情)

2024-07-03 08:10:05 发布

您现在位置:Python中文网/ 问答频道 /正文

创建一个程序的最有效方法是什么?创建一个0和1的列表(理想情况下可以更改,但不是我所做的必需的)-请求输入-评估输入,如果它等于N,那么它将被分配给列表中的第一个值,E分配给第二个值,S分配给第三个值,W分配给第四个值-然后检查每个列表值,如果每个值都等于1,那么这是一个可能的移动,如果是0,那么这是一个不可能的移动。抱歉,如果这没有多大意义,希望代码更清晰(讽刺的是,我知道)

def movefunc():
    userinput = input("What direction would you like to move, North(N), East(E), South(S), West(W)")
    move = [1,0,1,0]
    N = move[0]
    E = move[1]
    S = move[2]
    W = move[3]
    print(move)
    print(userinput)
    for moves in move:
        if moves == 1:
            print("Possible")  
        elif moves == 0:
            print("Impossible")
        else:
            print("Invalid")
movefunc()

这还没有结束,因为我不知道该怎么做。如果你能在任何方面帮助我,你就是一个救生员


Tags: 方法代码程序列表inputmovedef情况
2条回答
def movefunc():
    moves = {'N':1, 'E':0, 'S':0, 'W':1}
    user_input = input("What direction would you like to move, North(N), East(E), South(S), West(W)")
    try:
        print('Possible' if moves[user_input] else "Impossible")
    except KeyError:
        print("Invalid")

movefunc()

注意,有更好的结构空间-例如,在单独的功能中输入,从功能返回,而不是打印等

听起来您想将输入字符映射到列表中的索引:

def movefunc():
    userinput = input("What direction would you like to move, North(N), East(E), South(S), West(W)")
    moves = [1, 0, 1, 0]
    dir_dict = {'N':0, 'E':1, 'S':2, 'W':3}
    if userinput in dir_dict:
        move = moves[dir_dict[userinput]]
        if move == 1:
            print("Possible")  
        else:
            print("Impossible")
    else:
        print("Invalid")

movefunc()

相关问题 更多 >