数据爬虫python实例教程书python实例对象作为参数传递给函数
下载地址 https://share.weiyun.com/OvviwGnZ
资料目录 Python练习集100题 100道Python面试题 Python100经典练习题 Python经典题目100道题 Python题库(已收录100道真题) Python100例视频讲解课程 菜鸟教程Python教程100例 130道python练习题,涵盖基础内容的方方面面 Python考试题复习知识点试卷试题 PYTHON测试题和答案 python第一阶段考试题 Python经典面试题和答案解析 python期末考试复习试卷 python习题集大全(附答案解析) 老男孩Python全栈7期练习题(面试真题模拟) 尚观python第一阶段考试(面试真题模拟) 《Python程序设计基础与应用》习题答案 《Python快速编程入门》——课后题答案 Python编程基础张健 , 张良均课后习题及答案 Python程序设计基础及实践(慕课版)郭炜习题答案 Python程序设计基础习题答案与分析 python基础试题(含答案)
举例 字符串转整数 题目要求 实现函数atoi,将字符串转为整数,具体要求如下: 1. 字符串第一个非空字符如果不是数字,字符串无效,返回0 2. 字符串第一个非空字符如果是 + 或者 -,则表示正负,且该字符后面的第一个非空字符必须是数字,否则视为无效字符串,返回0 3. 遇到数字,将其与之后连续的数字字符组合起来形成整数 4. 有效数字范围是[−231, 231 − 1],数值超过可表示的范围,则返回231 − 1 或−231 。 示例 1、 "42" 转成 42 2、 " - 42 43" 转成 -4243 3、 "4193 word" 转成4193 4、 "word 4193" 转成0 5、 "-91283472332" 转成-91283472332, 比−2^31还小,返回−2^31 思路分析 基本思路是遍历字符串,遍历过程中,关键点是找到第一个非空字符,这个非空字符决定了接下来程序的走向。 如果第一个非空字符是+或者-,就决定了数值的正负,后面的工作是提取数值 如果第一个非空字符是数字,事情变得简单了,直接提取数值。 如果第一个非空字符既不是数字,也不是+或-,就是无效字符串,返回0即可。 提取数值的过程,用一个列表保存单个数字,直到遇到一个既不是数字也不是空格的字符或者遇到字符串末尾,将列表里的数值连接起来并用int转成数值。 程序的最后,要和最大值和小值比较。 示例代码 # coding=utf-8 MAX_INT = 2**31-1 MIN_INT = -2**31
def atoi(string): """ 将字符串转成int :param string: :return: """ if not isinstance(string, basestring): return 0 if string == u'': return 0
tag = 1 # 标识正负, 赋值为1表示为正 value = 0 for index, item in enumerate(string): # 空字符不处理 if item == u' ': continue elif item in ('+', '-'): if item == '-': tag = -1 value = get_int(string, index) break elif item.isdigit(): value = get_int(string, index) break else: return 0
value = tag * value if value > MAX_INT: value = MAX_INT if value < MIN_INT: value = MIN_INT
return value
def get_int(string, start_index): """ 提取数值 :param string: 字符串 :param start_index: 数值开始部分 :return: """ lst = [] for index in range(start_index, len(string)): if string[index] == u' ': # 空字符不用处理 continue if string[index].isdigit(): # 遇到不是数字时结束 lst.append(string[index])
return int(''.join(lst))
if __name__ == '__main__': print atoi("42") print atoi(" - 42 43 ") print atoi("4193 4 word") print atoi("word 4193") print atoi("-91283472332")
|