【问题标题】:How to condense if statments [duplicate]如何压缩if语句[重复]
【发布时间】:2017-10-13 20:15:36
【问题描述】:

我正在用 python 编写一个玩战争游戏的程序。我想知道是否有办法将所有 if 语句压缩为更简单的代码。我需要从 1-13 中选择一个随机数,这些数字与一副牌中的一张牌有关。 1=王牌,2=2 ... 11=杰克,12=皇后,13=国王。我还没有学习任何功能,所以我不能使用其中任何一个。

    while player_picked == computer_picked:
        player_picked = random.randint(1,13)
        computer_picked = random.randint(1,13)

        if player_picked == 1:
            card_picked_player = "Ace"
        if player_picked == 2:
            card_picked_player = "Two"
        if player_picked == 3:
            card_picked_player = "Three"
        if player_picked == 4:
            card_picked_player = "Four"
        if player_picked == 5:
            card_picked_player = "Five"
        if player_picked == 6:
            card_picked_player = "Six"
        if player_picked == 7:
            card_picked_player = "Seven"
        if player_picked == 8:
            card_picked_player = "Eight"
        if player_picked == 9:
            card_picked_player = "Nine"
        if player_picked == 10:
            card_picked_player = "Ten"
        if player_picked == 11:
            card_picked_player = "Jack"
        if player_picked == 12:
            card_picked_player = "Queen"
        if player_picked == 13:
            card_picked_player = "King"

        if computer_picked == 1:
            card_picked_computer = "Ace"
        if computer_picked == 2:
            card_picked_computer = "Two"
        if computer_picked == 3:
            card_picked_computer = "Three"
        if computer_picked == 4:
            card_picked_computer = "Four"
        if computer_picked == 5:
            card_picked_computer = "Five"
        if computer_picked == 6:
            card_picked_computer = "Six"
        if computer_picked == 7:
            card_picked_computer = "Seven"
        if computer_picked == 8:
            card_picked_computer = "Eight"
        if computer_picked == 9:
            card_picked_computer = "Nine"
        if computer_picked == 10:
            card_picked_computer = "Ten"
        if computer_picked == 11:
            card_picked_computer = "Jack"
        if computer_picked == 12:
            card_picked_computer = "Queen"
        if computer_picked == 13:
            card_picked_computer = "King"

【问题讨论】:

  • 使用字典或列表...{1:'Ace',2:'Two',...}['Ace','Two',...]

标签: python if-statement


【解决方案1】:

使用列表,然后为列表编制索引。

cards = ["Ace", "Two", "Three", ..., "King"]
card_picked_player = cards[player_picked-1]
card_picked_computer = cards[computer_picked-1]

如果不需要数值,也可以直接从列表中选择。

card_picked_player = random.choice(cards)
card_picked_computer = random.choice(cards)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-28
    • 1970-01-01
    • 2016-04-26
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    相关资源
    最近更新 更多