繁体   English   中英

打印 function 打印 True,但也打印 false

[英]Printing the function that prints True, but also prints false

我对这段代码的问题是我希望它打印 Current Offence: Player 和 Current Defender: Cpu

这是代码:

import random

Player = False
Cpu = False
user = input("Please enter [H]eads or [T]ails: ")

def flip_coin(Player, Cpu, user):
    # Flips coin to determine who has the ball first. 
    COIN = ["H", "T"]
    coin = random.choice(COIN)
    print("Coin is on: " + str(coin))
    
    if coin == user:
        Player = True
        return "Player"
    else:
        Cpu = True
        return "Cpu"

print("Current Offence: " + str(flip_coin(Player, Cpu, user)))
print("Current Deffence: " + str(flip_coin(Player, Cpu, user)))

Output:

Please enter [H]eads or [T]ails: H
Coin is on: H
Current Offence: Player
Coin is on: H
Current Deffence: Player

预期 Output:

Please enter [H]eads or [T]ails: H
Coin is on: H
Current Offence: Player
Current Deffence: Cpu

我如何才能到达当前进攻在播放器上的位置,但当前防御也在 Cpu 上而不在播放器上?

您只需要一个 bool(或 int)来保存所有信息:

import random

players = ["Cpu", "Player"]

def flip_coin(coin):
    return random.choice("HT") == coin

user = input("Please enter [H]eads or [T]ails: ")        
player = flip_coin(user)
print(f"Current Offence: {players[player]}")     # Note: True == 1
print(f"Current Defence: {players[not player]}") # and: False == 0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM