【问题标题】:Python input allowing integers and one alpha characterPython 输入允许整数和一个字母字符
【发布时间】:2016-04-26 06:57:42
【问题描述】:

我正在 Python 3.4 上制作计算器。计算器会要求用户输入一个数字。我想限制这一点,以便他们只能输入一个数字(我很好)或按“C”键清除计算器。我似乎一直坚持允许 C 以及任何整数。有人提出任何解决方法吗?

谢谢

【问题讨论】:

  • 到目前为止你得到了什么?也许我们可以以此为基础,而不是从头开始创建一切
  • edit您的问题并添加您尝试过的代码。
  • 一次输入一个数字,还是输入一个整数(如 1337)然后按 Enter 键?此外,如果用户输入例如,该怎么办? “42C” - 有效数字 42,有效命令“C”还是无效?那么小数点呢?支持它们还是限制输入为整数?

标签: python integer alphanumeric


【解决方案1】:

您可以使用此代码,假设用户应该能够输入由多个数字组成的数字,例如 1337,但不能输入小数点。混合数字和“C”的输入是无效的,“C”只有在输入只包含字母“C”而不包含其他内容时才会被检测到。忽略前导和尾随空格。

def get_input():
    inp = input("Enter a number or 'C' to clear: ").strip()
    if inp.upper() == "C":
        return "C"
    if inp.isdigit():
        return int(inp)
    else 
        return None

如果输入无效,此函数会将输入的数字返回为整数,或字符串“C”或None

【讨论】:

    【解决方案2】:

    假设您要一一接收用户输入:

    import string
    allowed = string.digits+'C'
    if input in allowed:
        doSomethingWith(input)
    

    这就是你要找的吗?

    【讨论】:

    • 仅当输入为单个数字时才有效。它不允许输入诸如42
    • 这真的取决于他如何实现它。对于这个计算器,我假设他正在逐一读取输入并附加到字符串以进行显示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 2017-11-13
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多