【发布时间】:2015-09-22 12:32:30
【问题描述】:
假设两个变量 varA 和 varB 被赋值,要么是数字要么是字符串。
编写一段 Python 代码,打印出以下消息之一:
如果 varA 或 varB 是字符串,则“涉及字符串”
如果 varA 大于 varB,则为“更大”
"equal" 如果 varA 等于 varB
"smaller" 如果 varA 小于 varB
假设 varA 和 varB 已定义,请在以下框中编写代码。
我的代码是
if type(varA) == type('s')) or (type(varB) == type('s')):
print "string involved"
if int(varA)>int(varB):
print "bigger"
elif (int(varA)<int(varB)):
print "smaller"
else:
print "equal"
测试值:varA = -7、varB = adieu
输出是:
ValueError: invalid literal for int() with base 10: 'adieu'
为什么我得到这个输出?如何解决这个问题?
【问题讨论】:
-
varB = adieu是指varB = 'adieu'吗?你为什么使用type平等而不是例如isinstance(varA, basestring)? -
int(varA) 尝试将您的字符串转换为 int。如果您的第一个条件为真,这是不可能的。如果您将第二个“if”更改为“elif”,它将不再尝试此操作
标签: python python-2.7 error-handling type-conversion