擅长:python、mysql、java
<p>我宁愿把这个放在评论中,但是没有足够的重复次数,所以这里就这样。在</p>
<p>首先,Python中的数组切片要求您以<code>[a:b]</code>的格式给出数字,其中a是您要获取的第一个字符的索引,b是字符的索引,而不是</b>,包括要获取的字符,因此变量MM应该是<code>BirthDate[2:4]</code>。在</p>
<p>接下来,要检查某些内容是否符合您的“DDMMYY”要求,您可能应该使用<code>int(input("Enter your DOB</code>),因为如果您使用str()函数将其转换为字符串,那么任何人都可以输入随机文本,并且可以逃脱惩罚(因为我相信您正在寻找整数输入)</p>
<p>另外,正如其中一条评论中提到的,尝试将<code>InputError=False</code>放在<code>try</code>部分,而不是{<cd6>}部分。在</p>
<p>代码如下:</p>
<pre><code>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 = int(input("Enter Birth Date in format DDMMYY - ")) # change to int() from str()
InputError = False # set error to false since the above line got evaluated
except ValueError:
print("Error - Numbers in format DDMMYY only")
DD = BirthDate[0:2]
MM = BirthDate[2:4]
YY = BirthDate[4:6]
print("Your Birth Month is - ", (CalendarDict[MM])) # converting into integer is not required since it already is one!
</code></pre>