首页 > 解决方案 > 如何将变量分配给函数?

问题描述

我对 Python 很陌生,我正在尝试创建一个函数,以便当我调用它时,它会将某些内容分配给一个变量。我不知道如何更好地解释它,但这就是我现在得到的:

again = '0'
def printa():
    print(again)
def f1():
    again = '1'
def f2():
    again = '2'
x = input()
x = str(x)
if x == '8':
    f1()
elif x == '9':
    f2()
printa()

我的目标是当我写 8 时输出为 1,当我写 9 时输出为 2;现在输出总是0。我知道我可以写if x == 8 print 1但我需要使用函数

标签: pythonfunctionvariables

解决方案


由于您要修改其中的变量againf1()因此f2()您必须使用(大部分不推荐)global关键字。您必须这样做,因为again超出了函数的范围(Python:为什么只在赋值时才需要全局而不在读取时需要全局?)。

again = '0'

def printa():
    print(again)
    
def f1():
    global again
    again = '1'
    
def f2():
    global again
    again = '2'
    
x = input()
if x == '8':
    f1()
elif x == '9':
    f2()
    
printa()

请注意,您不需要转换x为字符串,因为input()会自动执行此操作。

但是,更好的方法是使用带参数的函数:

def printa(arg):
    if arg == '8':
        print('1')
    elif arg == '9':
        print('2')
    else:
        print(arg)
    
x = input()
printa(x)
```

推荐阅读