[英]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.