def StrToInt(a): res ,mult,flag = 0,1,1 if not isinstance(a,str): raise TypeError("a is not str") if a[0] =='-' or a[0] == '+': if a[0] == '-': flag = -1 a = a[1:] for i in range(len(a)-1,-1,-1): if '9' =a[i] = '0': res +=(ord(a[i]) -48) * mult mult = mult *10 else : return 0 return res * flagdef test_strToInt2(self): with pytest.raises(TypeError): StrToInt(34)
测试用例:def test_strToInt3(self): assert StrToInt('测试赛') == 0def test_strToInt4(self): assert StrToInt('+2147689') == 2147689def test_strToInt5(self): assert StrToInt('45') == 45def test_strToInt6(self): assert StrToInt('1a33') == 0def test_strToInt7(self): assert StrToInt('-5') == -5