python - 如何将变量分配给函数?
问题描述
我对 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
但我需要使用函数
解决方案
由于您要修改其中的变量again
,f1()
因此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)
```
推荐阅读
- google-cloud-platform - 是否可以为 Google Cloud Run 禁用 Stackdriver 日志记录?
- google-apps-script - 如何排除日本银行假日并仅在 Google Apps 脚本中的日期中添加工作日?
- c++ - CreateProcessA() 在 C++ 中使用 cmd 输出以管理员身份运行
- python - Python Json 微笑序列化包
- python - 使用 BeautifulSoup 提取元素中的文本
- sql-server - SQL Server 错误:字符串或二进制文件将被截断。(系统.数据)
- node.js - 我的快递服务器收到很多获取请求
- javascript - 这段代码发生了什么?我不明白这是如何工作的,有人可以帮我完成这个吗
- spring - “com.microsoft.azure”和“com.azure”有什么区别?
- angular - 将 d3 更新到 v6.3.1 和 Angular 到 v11.0.6:错误 - 在 d3 中找不到事件