CodingBat Python 字符串索引超出范围错误
CodingBat Python string index out of range error
我目前正在做一个名为 string_bits 的 coding bat 问题,并且一直在使用 Thonny 调试它并将代码放入 coding bat 中以查看它是否正确。现在,我在 codingbat 中的代码出现错误,提示 字符串索引超出范围 。奇怪的是,当我在 Thonny 中 运行 它时,我没有得到错误。这里发生了什么?
def string_bits(str):
new_str = [str[0]]
count = 0
for letter in str[1:]:
count += 1
if count % 2 == 0:
new_str.append(letter)
return "".join(new_str)
也许测试尝试了一些不同类型的输入,而不仅仅是显而易见的。
例如,如果你的输入是一个空字符串:它会导致这样一个“超出范围”的错误。
尝试在对字符串(实际上是一个数组)进行任何操作之前添加输入检查
像这样:
def string_bits(str):
# check input for empty string
if str == "":
# quit function if invalid input
return ""
new_str = [str[0]]
count = 0
for letter in str[1:]:
count += 1
if count % 2 == 0:
new_str.append(letter)
return "".join(new_str)
我目前正在做一个名为 string_bits 的 coding bat 问题,并且一直在使用 Thonny 调试它并将代码放入 coding bat 中以查看它是否正确。现在,我在 codingbat 中的代码出现错误,提示 字符串索引超出范围 。奇怪的是,当我在 Thonny 中 运行 它时,我没有得到错误。这里发生了什么?
def string_bits(str):
new_str = [str[0]]
count = 0
for letter in str[1:]:
count += 1
if count % 2 == 0:
new_str.append(letter)
return "".join(new_str)
也许测试尝试了一些不同类型的输入,而不仅仅是显而易见的。 例如,如果你的输入是一个空字符串:它会导致这样一个“超出范围”的错误。 尝试在对字符串(实际上是一个数组)进行任何操作之前添加输入检查
像这样:
def string_bits(str):
# check input for empty string
if str == "":
# quit function if invalid input
return ""
new_str = [str[0]]
count = 0
for letter in str[1:]:
count += 1
if count % 2 == 0:
new_str.append(letter)
return "".join(new_str)