Python 仅允许字符串/整数,不允许小数

Python 仅允许字符串/整数,不允许小数,python,validation,Python,Validation,我将如何着手: 仅允许字符串/整数输入 不允许小数 转换为int并测试str.isalpha: while True: inp = raw_input() # input() python3 try: inp = int(inp) break except ValueError: if inp.isalpha(): break print("Invalid input") 如果实际需

我将如何着手:

  • 仅允许字符串/整数输入
  • 不允许小数

  • 转换为int并测试str.isalpha:

    while True:
        inp = raw_input() # input() python3
        try:
            inp = int(inp)
            break
        except ValueError:
            if inp.isalpha():
                break
            print("Invalid input")
    
    如果实际需要两个不同的变量:

    def get_name():
        while True:
            name = input("Enter your name: ")
            if name.isalpha():
                return name
            print("Invalid input")
    
    def get_age():
        while True:
            age = input("Enter your age")
            try:
                return int(age)
            except ValueError:
                print("Invalid input")
    
    
    name = get_name()
    age = get_age()
    
    使用内置功能

    >>> s = 'a'
    >>> s.isalnum()
    True
    >>> s = '12'
    >>> s.isalnum()
    True
    >>> s = '12.34'
    >>> s.isalnum()
    False
    >>> s = 'ab12'
    >>> s.isalnum()
    True
    

    负数呢?我正在使用较新版本的python。在那里我该怎么做?@Vlad\u Venger,把原始输入改为输入我该在哪里添加变量?例如name=str(输入(“你叫什么名字?”),这样它只允许一个字符串input@Vlad_Venger,变量来自何处,您是否接受输入?@Vlad_Venger,
    inp=input(“您的名字是什么?”)
    但如果您想测试两个不同的输入,请选中
    name=input(“您的名字是什么?”);如果name.isalpha()