记一次面试过程中的Python编程题
2021-01-26 07:15
标签:mic 使用 div 负数 lte ima 正则表达式 遇到 运行 这几天面试过程中遇到一道Python编程题,题目如下: 面试中遇到一个Python编程问题:一个字符串,将里面的数字取出来,如果第一个数字前面是+,表示整个数字为正数,如果第一个数字前面是-,表示数字为负数,数字不能越界 1.使用循环,最笨的办法 运行结果: 2.使用filter函数 运行结果: 3.使用正则表达式获取 运行结果: 上面3种方法以第3种方法代码最少,效率最高。 各位读者还有什么方法,可以在后面评论 记一次面试过程中的Python编程题 标签:mic 使用 div 负数 lte ima 正则表达式 遇到 运行 原文地址:https://www.cnblogs.com/zachyard/p/12853752.html# coding = ‘utf-8‘
# @作者: zach
# @时间:2020/5/8 0008 17:36
# @文件:一道面试题.py
import sys
import re
digit = ‘0123456789‘
str0 = ‘-b-03dd2+349‘
symbol = ‘+-‘
def get_digit(string):
num = ‘‘
syb = ‘‘
#获取数字
for i in range(len(string)):
if string[i] in digit:
num += string[i]
#获取正负号
for j in range(len(string)):
if string[j] in symbol and string[j+1] in digit:
syb = string[j]
break
num = syb + num
num = int(num)
#判断是否越界
if abs(num) > sys.maxsize:
return ""
print("整数越界")
else:
return int(num)
n = get_digit(str0)
print(n)
# coding = ‘utf-8‘
# @作者: zach
# @时间:2020/5/8 0008 17:36
# @文件:一道面试题.py
import sys
import re
#通过filter函数获取
num = filter(str.isdigit, str0)
num = ‘‘.join(list(num))
print(num)
for j in range(len(str0)):
if str0[j] in symbol and str0[j+1] in digit:
sym = str0[j]
break
num = sym + num
print(int(num))
# coding = ‘utf-8‘
# @作者: zach
# @时间:2020/5/8 0008 17:36
# @文件:一道面试题.py
import sys
import re
num = re.findall(r‘(-?\d+)‘, str0)
num = ‘‘.join(num)
print(int(num))
文章标题:记一次面试过程中的Python编程题
文章链接:http://soscw.com/index.php/essay/47169.html