我是新手,尝试过搜索功能,但找不到合适的方法,如果能提供任何支持,我将不胜感激。
我想修改此代码以允许用户输入数字或单词。如果 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/