所以我想做麦当劳挑战。给定带有参数“name”的函数返回它的MacDonald版本,第一个和第四个字母大写。 如果我在没有任何If-else的情况下尝试代码,并且只传入“mac”一个错误发生了。所以呢我说如果名字的长度少于5个字母,就把名字也打印出来短。否则,做麦当劳版。 但是,由于某些原因,len()在这里给出了一个错误。你知道吗
def old_macdonald(name):
firstLetter = name[0].capitalize()
fourthLetter = name[3].capitalize()
inBetween = name[1:3]
last = name[4:]
newName = firstLetter + inBetween + fourthLetter + last
if len(newName) < 4:
print("name is too short.")
else:
print(newName)
old_macdonald("mac")
按照Jens的建议,我将if检查放在其他所有检查之上(因为如果名称太短,您希望终止函数),并在if检查中返回以中断和结束函数。你知道吗
这是结果
我不认为
len
会抛出异常,但就像没有if条件的版本一样,字符串操作也会抛出异常。你知道吗在代码的
else
部分执行字符串操作以避免异常。你知道吗不管怎样,您仍然在尝试执行相同的操作,len并没有向您抛出错误,上面的代码部分给出了错误。你知道吗
只要将代码移到函数的else部分就可以了。您需要这样做的原因是,您需要先检查,然后执行,而不是先执行,然后检查。你知道吗
相关问题 更多 >
编程相关推荐