簡體   English   中英

如何將變量分配給 function?

[英]How do i assign a variable to a function?

我對 Python 很陌生,我正在嘗試制作 function 以便當我調用它時,它會為變量分配一些東西。 我不知道如何更好地解釋它,但這就是我現在得到的:

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 時 output 為 1,當我寫 9 時 output 為 2; 現在 output 始終為 0。我知道我可以寫if x == 8 print 1但我需要使用函數

由於您想在f1()f2()again修改變量,因此您必須使用(大多數不推薦的) global關鍵字。 您必須這樣做,因為功能again超出 scope ( 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()會自動執行此操作。

但是,更好的方法是使用帶參數的 function:

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

如果要從 function 更改全局變量值,請again將變量設置為global變量

def f1():
    global again
    again = '1'
def f2():
    global again
    again = '2'

但也許改變邏輯會更好

你也可以這樣做:

def func():
  x = str(input())
  if x == '9':
    return '1'
  elif x == '8':
    return '2'
  else:
    print("'9' or '8' not entered")


func() # To call the function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM