【发布时间】:2018-02-01 07:01:42
【问题描述】:
当我运行这个程序时,我收到错误,ValueError: invalid literal for int() with base 10: '',我觉得这与 int 和 str 转换有关,但我真的不太确定,任何帮助表示赞赏:)
CalendarDict = {1:"January", 2:"February", 3:"March", 4:"April", 5:"May",
6:"June", 7:"July", 8:"August", 9:"September", 10:"October", 11:"Novemeber",
12:"December"}
InputError = True
while InputError:
try:
BirthDate = str(input("Enter Birth Date in format DDMMYY - "))
except ValueError:
print("Error - Numbers in format DDMMYY only")
InputError = False
DD = BirthDate[0:2]
MM = BirthDate[3:4]
YY = BirthDate[4:6]
if MM == BirthDate[3:4]:
print("Your Birth Month is - ", (CalendarDict[int(MM)]))
【问题讨论】:
-
我什至不知道它是什么语言,但对我来说很明显
MM包含一些不能表示以 10 为底的整数的字符串。打印出来看看。 -
哦,对不起,我忘了说,它的蟒蛇!
-
@Emily 您正在尝试使用
int将空字符串转换为数字。那显然行不通。您需要调试以找出您尝试执行此操作的位置。由于您只使用了一次int,因此应该很容易追踪到。 -
知道在 Python 中对字符串或列表范围之外的切片会默默失败:
"a"[3:4] == ""。 -
这是 Python 2 还是 3?我不太明白,这将彻底改变
input的行为。
标签: python valueerror