问题:
用Python定义函数parseInt ()实现将字符串转换为整数,
条件:遇到不能转为整数的,比如"Mike"等,输出NaN;
遇到二进制,十六进制等直接转为整数;
遇到有小数的,去掉小数点后面,保留整数部分;
遇到类似"4567read"的字符串输出整数部分4567
解答
c
def parseInt(s):
try:
if s.startswith('0b'):
return int(s, 2) # 尝试将二进制字符串转换为整数
elif s.startswith('0x'):
return int(s, 16) # 尝试将十六进制字符串转换为整数
elif '.' in s:
return int(float(s)) # 将有小数的字符串转换为整数
else:
return int(''.join(filter(str.isdigit, s))) # 提取字符串中的数字并转换为整数
except ValueError:
return "NaN" # 处理无法转换为整数的情况
return result