如何使字典接受任何整数来触发函数

2024-06-02 07:52:11 发布

您现在位置:Python中文网/ 问答频道 /正文

假设您有以下代码:

def statementz():
    print("You typed in", number)


digits = {
  56 : statementz
}

while True:
  try:
    number = int(input("Enter a number: "))
  except TypeError:
    print("Invalid. Try again.\n")
    continue
  else:
    digits.get(number, lambda : None)()
    break

我想知道是否有一种方法可以允许字典在变量“number”包含任何整数/浮点值时触发“statementz”函数,而不仅仅是上面(相当草率)示例中给出的整数

有可能这样做吗?提前感谢您的指导


Tags: 代码inyoutruenumberinputdef整数
2条回答

如果您想将任何数字传递给statementz(),只需在验证它为数字后直接调用它即可。dict仅在您希望将不同的数字映射到不同的函数时才有用,而这不是您所要求的行为。还请注意statementz()应将数字作为参数,因为您希望在函数中打印数字:

def statementz(number):
    print("You typed in", number)

while True:
  try:
    number = float(input("Enter a number: "))
    statementz(number)
  except TypeError:
    print("Invalid. Try again.\n")

没有尝试,除了:

尝试使用:

def statementz(number):
    print("You typed in", number)

while True:
    number = input("Enter a number: ")
    if number.isdigit():
        statementz(number)
        break
    else:
        print("Invalid. Try again.\n")

示例输出:

Enter a number: Apple
Invalid. Try again.

Enter a number: 12ab
Invalid. Try again.

Enter a number:  41-
Invalid. Try again.

Enter a number: 24
You typed in 24

相关问题 更多 >