gpt4 book ai didi

python - 如何在 Python 中创建开关函数?

转载 作者:太空宇宙 更新时间:2023-11-04 09:29:07 26 4
gpt4 key购买 nike

我很难创建一个程序,每次运行该函数时都会在字符串“X”和“O”之间切换。

因此,例如,第一次运行 switcher() 时,它打印“x”,下一次运行时,它打印“o”,第三次它打印“x”,依此类推

我已经能够在没有函数的情况下仅使用 if else 循环来实现这一点,但是我不能使用函数来实现它

def switch(value):
if value == 0:
x = value
x + 1
print("value: " + str(x) + " | turn: x")
return x
else:
print("o")
return 0

x = 0
for i in range(4):
switch(x)

它输出:

value: 0 | turn: x
value: 0 | turn: x
value: 0 | turn: x
value: 0 | turn: x

为了实现这一点,我让它在 x = 0 时打印“X”,当它为 1 时打印“O”,然后重置回 0。它保持为 0 并且只给我 x .

最佳答案

使用 itertools 中的循环

我认为一个好的方法是使用函数 cycle在 itertools 中

from itertools import cycle

def switch():
return cycle(["X", "O"])

i = 0
for output in switch():
i += 1
print(output)
if i == 5:
break

输出:

X
O
X
O
X

使用全局变量

您还可以使用全局变量来跟踪最后生成的值。但是,使用全局变量并不是一个好主意。

last_value = None

def switch():
global last_value
if last_value in (None, "O"):
last_value = "X"
return "X"
last_value = "O"
return "O"

for _ in range(5):
print(switch())

输出:

'X'
'O'
'X'
'O'
'X'

使用局部变量

您还可以传递一个参数,指示返回的最后一个值。

def switch(last_value):
if last_value in (None, "O"):
return "X"
return "O"

last_value = None
for _ in range(5):
last_value = switch(last_value)
print(last_value)

输出:

X
O
X
O
x

关于python - 如何在 Python 中创建开关函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56402744/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com