尝试更新后变量未更改

时间:2021-04-14 21:28:52

标签: python-3.x

我正在尝试在传递一行代码后进行变量更新。我遇到的问题是,一旦传递了该行代码然后再次打印,该变量就是默认值,在本例中为 10。 我不知道我是不是做错了什么,但我就是看不出我失败的地方,也许是因为我是初学者。在寻求帮助之前尝试了我能想到的一切,但此时我很绝望。谢谢。

$currentMonth = '04';
$firstDate = new DateTime('2021-03-28');
$secondDate = new DateTime('2021-04-15');

$firstDateMonth = $firstDate->format('m');
$secondDateMonth = $secondDate->format('m');

if ($currentMonth === $firstDateMonth && $currentMonth === $secondDateMonth) {
    $diff = $secondDate->format('j') - $firstDate->format('j');
} else {
    $diff = $currentMonth === $secondDateMonth
        ? $secondDate->format('j')
        : null;
}

3 个答案:

答案 0 :(得分:0)

注意我是如何在你执行输出的地方执行计算的。我将输出移到计算下方。

number = 10

def numberFun(question,valid=("ADD","REM")):
    while (answer := input(question)) and answer not in valid:
        print(f"Please, choose between {valid}.")
    return answer

print(f"{number}: before updating.")
numberAction = numberFun("You want to add or remove one?\n")
if numberAction == "ADD":
    number = number + 1
elif numberAction == "REM":
    number = number - 1
print(number)

print(f"{number} : after updating.")

答案 1 :(得分:0)

这是因为您没有更新存储在 number 中的值。我的猜测是您试图在 if/elif 子句中这样做;如果是这种情况,这应该有效:

number = 10

def numberFun(question,valid=("ADD","REM")):
    while (answer := input(question)) and answer not in valid:
        print(f"Please, choose between {valid}.") 
    return answer

print(f"{number}: before updating.")
numberAction = numberFun("You want to add or remove one?\n")
if numberAction == "ADD":
    number += 1    # equivalent to 'number = number + 1'
elif numberAction == "REM":
    number -= 1    # equivalent to 'number = number - 1'
print(number)


print(f"{number} : after updating.")

最初,您只是在某些操作后打印 number。要更改 number 中的值,您需要为变量重新分配一些值。

答案 2 :(得分:0)

要从变量 num 中加或减 1,您需要对值进行加法或减法运算,并将其存储在同一变量中以“更新”它。

在您的代码中,在第 12 行和第 14 行,您分别执行加法和减法,但您打印结果而不是将结果存储在变量 number 中,变量 print(number + 1) 将“更新”预存储值,在此案例是10。

因此,将第 12 行中的 number += 1 替换为 print(number - 1) 以将前一个值加 1,并将第 14 行中的 number -= 1 替换为 number 以减 1 以“更新”根据用户的选择存储的值。

然后,在最后一行打印数字变量时,它将显示变量 number = 10 def numberFun(question,valid=("ADD","REM")): while (answer := input(question)) and answer not in valid: print(f"Please, choose between {valid}.") return answer print(f"{number}: before updating.") numberAction = numberFun("You want to add or remove one?\n") if numberAction == "ADD": number += 1 elif numberAction == "REM": number -= 1 print(f"{number} : after updating.") 的“更新”值

[{"id":"2698","psp":"Paypal"},{"id":"2699","psp":"Unknown"},{"id":"2677","psp":"Stripe"},{"id":"2678","psp":"AmazonPay"}]