很多小伙伴会经常私信来问我问题,有些来不及回答,抱歉!
看到最后,给自己一个学习的地方!
第1题: print 调用 Python 中底层的什么方法?
print() 用 sys.stdout.write() 实现
上述代码你应该可以总结一下。
- sys.stdout.write()结尾没有换行,而print()是自动换行的。
- write()只接收字符串格式的参数。
- print()能接收多个参数输出,write()只能接收一个参数输出。
input
Python3中的input() 用 sys.stdin.readline() 实现。
第2题: 的区别?
首先我们看看range:
- range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列。注意这里是生成一个序列。
- xrange的用法与range相同,即xrange([start,] stop[, step])根据start与stop指定的范围以及step设定的步长,它所不同的是xrange并不是生成序列,而是作为一个生成器。即她的数据生成一个取出一个。
两者用法相同,不同的是 range 返回的结果是一个列表,而 xrange 的结果是一个生成器,前者是 直接开辟一块内存空间来保存列表,后者是边循环边使用,只有使用时才会开辟内存空间,所以相对来说,xrange比range性能优化很多,因为他不需要一下子开辟一块很大的内存,特别是数据量比较大的时候。
注意:
- xrange和range这两个基本是使用在循环的时候。
- 当需要输出一个列表的时候,就必须要使用range了。
第3题: 4G 内存怎么读取一个 5G 的数据?
方法一
可以通过生成器,分多次读取,每次读取数量相对少的数据(比如 500MB)进行处理,处理结束后在读取后面的 500MB 的数据。
方法二
可以通过 linux 命令 split 切割成小文件,然后再对数据进行处理,此方法效率比较高。可以按照行数切割,可以按照文件大小切割。
第4题:在except中return后还会不会执行finally中的代码?怎么抛出自定义异常?介绍一下 except 的作用和用法?
会继续处理 finally 中的代码;用 raise 方法可以抛出自定义异常
- except: #捕获所有异常
- except: : #捕获指定异常
- except: : 捕获异常 1 或者异常 2
- except:,:捕获指定异常及其附加的数据
- except:::捕获异常名 1 或者异常名 2,及附加的数据
第5题:在Python中输入某年某月某日,判断这一天是这一年的第几天?(可以用 Python 标准库)
方法一
互联网找到了几个解法
方法二
import datetimey = int(input('请输入4位数字的年份:')) # 获取年份m = int(input('请输入月份:')) # 获取月份d = int(input('请输入是哪一天:')) # 获取“日”targetDay = datetime.date(y, m, d) # 将输入的日期格式化成标准的日期dayCount = targetDay - datetime.date(targetDay.year - 1, 12, 31) # 减去上一年最后一天print('%s是%s年的第%s天。' % (targetDay, y, dayCount.days))
方法三
import datetimedtime = input("请输入求天数的日期(20191111):")tnum = datetime.datetime.strptime(dtime,'%Y%m%d').strftime("%j")print(dtime + "在一年中的天数是: " + tnum + "天。")
最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取。