python - 我正在尝试在 python 2.7 中输入并允许它区分字符串和整数

标签 python input user-input

我是新手,尝试过搜索功能,但找不到合适的方法,如果能提供任何支持,我将不胜感激。

我想修改此代码以允许用户输入数字或单词。如果 Var a 和 b 是数字,代码将测试一个 int 并比较数字的大小,但是如果选择了一个单词,它将测试一个字符串并打印所涉及的字符串。我试图使代码相当简单。

varA = raw_input('Enter a number or string ')

varB = raw_input('Enter a number or string ')

if type (varA) == str or type (varB) == str:

    print "string involved"
elif varA > varB:
    print "bigger"
elif varA == varB:
    print "equal"
elif varA < varB:
    print "smaller" 

最佳答案

您可以使用 var.isdigit() 来检查您的字符串变量是否也是一个数字。然后您可以使用 int(var) 转换其他选项。

请注意,如果您首先检查两者是否都是数字,则不需要错误处理。

见下面的代码:

 def main():
    varA = raw_input("Enter a number or string") #this is a string by default   
    varB = raw_input("Enter a number or string")

    aNegDigit = False
    bNegDigit = False
    stringFlag = False #used to flag strings (e.g. -abc)

    if(varA[0] == "-" and varA[1:].isdigit()):
        varA = -1*int(varA[1:])
        aNegDigit = True

    if(varB[0] == "-" and varB[1:].isdigit()):
        varB = -1*int(varB[1:])
        bNegDigit = True

    if (aNegDigit or bNegDigit):
        if(not(aNegDigit)):
            if(varA.isdigit()):
               varA = int(varA)
            else:
                stringFlag = True

        if (not(bNegDigit)):
            if(varB.isdigit()):
               varB = int(varB)
            else:
                stringFlag = True

        if (stringFlag == True):
            print("String Involved")

        else:
            compareVarStrs(varA, varB)

    elif(varA.isdigit() and varB.isdigit()):
        compareVarStrs(varA, varB)

    else:
        print("String Involved")

def compareVarStrs(varA, varB):
    if (int(varA) > int(varB)):
        print ("bigger")

    elif (int(varA) < int(varB)):
        print ("smaller")

    else:
        print ("equal")

main()

关于python - 我正在尝试在 python 2.7 中输入并允许它区分字符串和整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35471400/

相关文章:

html - 避免在 BlackBerry WebWorks 中选择字段的蓝色

python - 返回 numpy 数组别名内部数组时如何处理引用计数?

python - 如何将系列加入数据框?

html - 如何设置结帐样式

javascript - 以 JavaScript 报价形式显示总值

php - 函数或调用者应该负责输入验证吗?

c# - 我如何在 C# 中等待控制台输入 15 秒左右

c - 可编辑 GtkTreeView 的困难

python - 使用 Python 将大量数据框 append 到现有 Excel 文件

python - 序列号 2.6 : specify end-of-line in readline()