首页 > 解决方案 > 为什么我的具体实现不能从函数返回中间字母?

问题描述

目的是返回字符串的中间字母,或者" "如果字符串是偶数。我不明白为什么我的代码不起作用。任何形式的澄清都会很棒,谢谢!

def mid(ml):

    x=len(ml)
    y=x+1
    z=y/2
    if isinstance(z,int)==True:
        return (ml[z-1])
    else:
        return (" ")
        
print (mid("abc"))

标签: pythonpython-3.x

解决方案


/不返回int; 即使它返回的数字可以表示为一:

>>> 4 / 2
2.0  # A float

最好明确检查数字是否为偶数:

# Read as: "If z is odd", or, "If division of z by 2 has a remainder of 1"
if z % 2 == 1:  
    return ml[z-1]
else:
    return " "

推荐阅读