Python 要分配给函数的整数输入()变量
我有一个调用函数的变量列表。这些变量的编号从1到5,每个整数都应该调用一个函数来收集所需的信息。选择变量的方法是通过控制台输入,即输入(“选择一个数字”)Python 要分配给函数的整数输入()变量,python,Python,我有一个调用函数的变量列表。这些变量的编号从1到5,每个整数都应该调用一个函数来收集所需的信息。选择变量的方法是通过控制台输入,即输入(“选择一个数字”) 如果您想要一种将数字与函数关联起来的方法,我认为最简单的方法就是使用列表。这正是列表所做的…将对象与数字索引(列表中的位置)关联。与其他方法相比,这种方法的一个优点是,在从列表中添加和删除函数时,代码不必更改,因为它可以根据列表的长度来确定其逻辑 下面是一个调用给定数字作为输入的特定函数的示例: def function1(): pr
如果您想要一种将数字与函数关联起来的方法,我认为最简单的方法就是使用列表。这正是列表所做的…将对象与数字索引(列表中的位置)关联。与其他方法相比,这种方法的一个优点是,在从列表中添加和删除函数时,代码不必更改,因为它可以根据列表的长度来确定其逻辑 下面是一个调用给定数字作为输入的特定函数的示例:
def function1():
print("I am function 1")
def function2():
print("I am function 2")
def function3():
print("I am function 3")
def function4():
print("I am function 4")
def function5():
print("I am function 5")
functions = [function1, function2, function3, function4, function5]
f = input("Enter a number between 1 and {} > ".format(len(functions)))
try:
i = int(f)
if i < 1 or i > len(functions):
print("There's no function with number " + f)
else:
functions[i-1]()
except ValueError:
print("Invalid Input")
def function1():
打印(“我是功能1”)
def function2():
打印(“我是功能2”)
def function3():
打印(“我是功能3”)
def function4():
打印(“我是功能4”)
def function5():
打印(“我是功能5”)
函数=[函数1、函数2、函数3、函数4、函数5]
f=输入(“输入一个介于1和{}>”之间的数字。格式(len(函数)))
尝试:
i=int(f)
如果i<1或i>len(函数):
打印(“没有带数字的函数”+f)
其他:
功能[i-1]()
除值错误外:
打印(“无效输入”)
使用lambda(匿名)函数可以更简洁地完成同样的事情。由于您是按编号引用函数,因此它们不需要名称:
functions = [
lambda: print("I am function 1"),
lambda: print("I am function 2"),
lambda: print("I am function 3"),
lambda: print("I am function 4"),
lambda: print("I am function 5")
]
f = input("Enter a number between 1 and {} > ".format(len(functions)))
try:
i = int(f)
if i < 1 or i > len(functions):
print("There's no function with number " + f)
else:
functions[i-1]()
except ValueError:
print("Invalid Input")
函数=[
lambda:print(“我是函数1”),
lambda:print(“我是函数2”),
lambda:print(“我是功能3”),
lambda:print(“我是函数4”),
lambda:print(“我是函数5”)
]
f=输入(“输入一个介于1和{}>”之间的数字。格式(len(函数)))
尝试:
i=int(f)
如果i<1或i>len(函数):
打印(“没有带数字的函数”+f)
其他:
功能[i-1]()
除值错误外:
打印(“无效输入”)
鉴于lambdas将您限制为一个表达式,并且我假设您需要更复杂的函数,我猜第一个版本就是您想要的。如果您只想在获得一个数字后执行一个函数,那么您可以尝试pseudoswitch子句:-
def switch(i):
py_switch = {
1: lambda: function1(),
2: lambda: function2(),
3: lambda: function3(),
4: lambda: function4(),
5: lambda: function5(),
}
function = py_switch.get(i)
function()
choice = int(input("Enter your choice = "))
switch(choice)
这是一个等价的交换子句(在C++、java等语言中发现),输入一个输入,并根据输入值提供输出。
实现大多数程序中常见的
if-else
梯形图有点困难。answer=input()
,if-answer==“1”:view_15_cities()
您对花括号和lambda
返回值的描述完全错误。您的代码可以工作,但这只是因为花括号正在lambda
函数中创建set
文本。这是一种非常粗略的运行多行代码的方法,实际上它不允许您运行任何语句(如赋值),只允许运行额外的表达式(如函数调用)。lambda的返回值将是一个集合,其中包含所有expressions.Oops中的唯一值。我知道这一点,但显然还不够清楚。我可能和Java混在一起了吗?谢谢…我会改密码的。