天天看点

刷题(二)

def A(a, b):
    try:
        for i in range(1, int(b)):
            a += b
            if int(b) > 4:
                return a
            else:
                a += a
        return a
    except TypeError:
        return '参数类型错误'
    except ValueError:
        return '字符转换错误'      

填写对应的N值

填入 N值  输入 N值
N=A(1,4) 64 N=A('1',2) '参数类型错误'
N=A(1,5) 6 N=A('1','2') '1212'
N=A(1,1) 1 N=A(1,'ss') '字符转换错误'

分析:

当N=A(1,4)时,a=1, b=2, for i in range(1,4):

  当 i=1 时, a=1+4=5; a=5+5=10

  当 i=2 时, a=10+4=14; a=14+14=28

  当 i=3 时, a=28+4=32; a=32+32=64

  返回 a=64,故N=64

当N=A(1,5)时,a=1, b=5, for i in range(1,5):

  当 i=1 时, a=1+5=6; 

  int(5)>4, 返回 a=6, 故N=6

  遇到return意味着函数的结束

当N=A(1,1)时, a=1, b=5, for i in range(1,1):

  函数不会进入for循环,直接返回 a=1, 故N=1

当N=A('1',2)时, a='1', b=2, for i in range(1, 2):

  当 i=1 时, a='1'+2;

  字符串不能和整型相加(或拼接),所以出现TypeError

  返回 参数类型错误, 故N='参数类型错误'

当N=A('1','2')时, a='1', b='2', for i in range(1, 2):

  当 i=1 时, a='1'+'2'='12'; a='12'+'12'='1212'

  返回 a='1212', 故N='1212'

当N=A(1,'ss')时, a=1, b='ss', for i in range(1, int('ss')):

  字符串内部不是整数形式,因此不能转换为整型,出现ValueError