Python 如何在conditonal语句中运行def函数?

Python 如何在conditonal语句中运行def函数?,python,python-3.x,function,if-statement,while-loop,Python,Python 3.x,Function,If Statement,While Loop,您好,我想做一个程序,把数字a=2,B=1,C=3改成a=3,B=2,C=1 但是我被卡住了 你能帮助我吗? 我无法理解语句中的函数,您没有在第15行输入putarbilangan(A,B,C) A = int(input("masukan angka A: ")) B = int(input("masukan angka B: ")) C = int(input("masukan angka A: ")) print(f"a

您好,我想做一个程序,把数字a=2,B=1,C=3改成a=3,B=2,C=1 但是我被卡住了 你能帮助我吗?
我无法理解语句中的函数,您没有在第15行输入putarbilangan(A,B,C)

A = int(input("masukan angka A: "))
B = int(input("masukan angka B: "))
C = int(input("masukan angka A: "))
print(f"anda memasukan angka A:{A}, B:{B}, C:{C}")
def putarbilangan(A,B,C):
    A = B
    B = C
    C = A
    return putarbilangan

while True:
    tanya = input("apakah ingin diputar (yes/no) ?")
    if tanya == "yes":
        print("ok")
        putarbilangan()
        break
    elif tanya == "no":
        print("program selesai")
        break
    else:
        print("anda salah memilih")
        break

除了buran在评论中指出的局部范围问题外,该任务并没有像您预期的那样工作。假设输入为A=2,B=1,C=3

A = int(input("masukan angka A: "))
B = int(input("masukan angka B: "))
C = int(input("masukan angka A: "))
print(f"anda memasukan angka A:{A}, B:{B}, C:{C}")
def putarbilangan(A,B,C):
    A = B
    B = C
    C = A
    return putarbilangan

while True:
    tanya = input("apakah ingin diputar (yes/no) ?")
    if tanya == "yes":
        print("ok")
        putarbilangan(A,B,C)
        break
    elif tanya == "no":
        print("program selesai")
        break
    else:
        print("anda salah memilih")
        break
所以3的值丢失了。您可以调用该函数并使用返回值分配更改

A = B  # makes A = 1, B =1, C=3
B = C  # makes A = 2, B =3, C=3
C = A  # makes A = 2, B =1, C=2
或者只是

def putarbilangan(A,B,C):
    return C, A, B

A, B, C = putarbilangan(A,B,C)

您的函数正在返回自身,即返回函数对象。此外,在函数内部,您还可以操作参数,即仅在函数内部“活动”的局部作用域名称。
A, B, C = C, A, B
A = int(input("masukan angka A: "))
B = int(input("masukan angka B: "))
C = int(input("masukan angka C: "))
print(f"anda memasukan angka A:{A}, B:{B}, C:{C}")


def putarbilangan():
    global A
    global B
    global C
    A, B, C = B, C, A


while True:
    tanya = input("apakah ingin diputar (yes/no) ?")
    if tanya == "yes":
        print("ok")
        putarbilangan()
        print(f"anda memasukan angka A:{A}, B:{B}, C:{C}")
        break
    elif tanya == "no":
        print("program selesai")
        break
    else:
        print("anda salah memilih")
        break