Day14(Python作业)

(Python作业来自qq群:651707058,欢迎任何程度的Python学习者)

题一:默认参数

请找出下面代码为什么会得出这样的结果。
''''现在我们来扩展一下列表相加,定义一个列表相加的函数,会给两个list后面都加一个None值作为结尾' \
'然后再相加'
'比如:L1 = [1,2] L2 = [3,4]  相加后变成 [1,2,None,3,4,None]' \
'L1 = [1,2] L2 = [] 相加后变成[1,2,None,None]' \
'L1 = [],L2=[],变成[None,None]'def add_list(L1 = [],L2 = []):L1.append(None)L2.append(None)return L1+L2
print(add_list())
print(add_list([1,2]))
print(add_list([1,2],[3,4]))'''
在函数的默认参数中,最好不要使用可变的默认参数
因为一个函数的默认参数的值,只会保留一份。
而不是在调用函数的时候临时去创建一个值(如下面的列表),在以后调用函数的时候,函数都会去用这个 创建函数时创建的默认参数值
所以这一份默认参数值,如果是可变对象的话,调用就不敢保证默认参数是否
已经发生了改变,从而引起了函数错误所以在为函数定义默认参数的时候,一定要保证默认参数值是一个不可变对象
'''

题二:歌词
我们知道一些播放器有桌面歌词的功能,他会在桌面显示一行歌词,之后又换成下一行歌词显示。在这里,我们需要使用Python来实现简单的显示歌词功能。
大概是这样的一个过程:
显示一行歌词->暂停1秒->换下一行歌词->暂停1秒->换下一行歌词。。。。

from time import sleep
with open('my way enlish.txt','r',encoding='utf-8') as f:words = f.readlines() #words是一个list,每个元素是一行#以上只是一个打开文件的方式,下面是本题的具体做法for line in words:print('\r',line[:-2],flush=True,end='')sleep(1.5)'''
line[:-2] 表示去掉句子的最后一个标点符号和\n
'''

下面是我的答案:

import time
s = ['And now, the end is near',
'And so I face the final curtain',
'My friend, I\'ll make it clear',
'I\'ll state my case, of which I\'m certain',
'I\'ve lived a life that\'s full',
'I\'ve traveled each and every highway',
'And more, much more I did',
'I did it my way',
'Regrets, I\'ve had a few',
'But then again, too few to mention',
'I did what I had to do',
'And saw it through without exemption',
'I planned each charted course',
'Each careful step along the by way',
'and more, much more than this',
'I did it my way',
'Yes, there were times, I am sure you knew',
'When I bit off more than I could chew',
'But through it all,when there was doubt',
'I ate it up and spit it out',
'I faced it all and I stood tall',
'And did it my way',
'I’ve loved, I’ve laughed and cried',
'I’ve had my fill, my share of losing',
'And now, as tears subside',
'I find it all so amusing',
'To think I did all that',
'And may I say - not in a shy way',
'No, oh no not me',
'I did it my way',
'For what is a man, what has he got?',
'If not himself, then he has naught',
'To say the things he truly feels',
'And not the words of one who kneels',
'The record shows I took the blows',
'And did it my way!',
'Yes, it was my way',
]
for i in s[:]:print('\r',end='')#返回行首print(i,end='',flush=True)#实时输出time.sleep(1.5)#停顿1.5秒

题三:显示时间
有了上一题的基础,我们再做出一个动态时钟。只需输出一行 21:45:50 这就表示一个时钟,但是它是可以动的。也就是每隔1s动一下,来模拟时钟。

from time import sleep
hours = 21
minutes = 59
seconds = 50
while True:sleep(1)seconds +=1if seconds>=60:seconds %=60minutes+=1if minutes>=60:minutes%=60hours+=1if hours>=24:hours%=24print('\r','{:<02}:{:<02}:{:<02}'.format(hours,minutes,seconds),flush=True,end='')

题四:大文件读取
现在有一个很大的文本文件,它总共只有一行,也就是这庞大的数据是没有\n的
而其分割符为{|}.可以查看data.txt,
现在我们需要将文件读取,以{|}为行分隔符,一行一行复制写入到data_copy.txt
这个文件

注意:这里我们要假装这个文件很大(10GB),太大上传太慢。我们不能使用一次性读取的方法,因为我们电脑内存有限。

def read_bigdata(filename,lineflag):with open(filename,'r',encoding='utf-8') as f:buf = '' #定义一个缓冲while True:while lineflag in buf: #如果缓冲里面有行分隔符pos = buf.index(lineflag)yield buf[:pos]buf = buf[pos+len(lineflag):]buf2 = f.read(4096*10) #读取10个字节if not buf2:break #如果读完了,就结束buf+=buf2
if __name__ == '__main__':with open('data_copy.txt','w',encoding='utf-8') as f2:while True:res = read_bigdata('data.txt','{|}')for line in res:f2.write(line+'\n')breakprint('复制结束')

题目有点难度,我还不会做,以上是qq群主的答案,供大家参考,不懂的小伙伴们可以加群一起学习。

Python作业【六】(语言练习题,稍有难度)相关推荐

  1. python基础练习题:Covfefe【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    python基础练习题:Covfefe[难度:1级]: Covfefe 你给出的字符串.你必须用'covfefe但替换的单词(S)coverage,如果你没有找到字符串中的单词'coverage,你必 ...

  2. Python第六周作业

    Python第六周作业 1. 正则表达式的点星匹配 2. 计算函数曲线与x轴包围的面积 3. 哥德巴赫猜想 4. 鸡兔同笼B 5. 与7无关的数 6. 完美立方数 7. 高次方程求根 8. 在终端输出 ...

  3. python进阶练习题:因式分解【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    python进阶练习题:因式分解[难度:2级]: 正整数的因式分解是整数的首要因素清单,与他们一起多重;确定这些因素的过程被称为整数分解.算术基本定理指出,每一个正整数都有一个唯一的质数分解. 的24 ...

  4. python和c和java难度_浅谈:Java和C语言各自的学习难度

    许多初学者在编程入门之前,都会在编程语言的选择上犹豫不决.一般来讲,Java和C语言是编程小白最青睐的两种编程语言.那么,Java和C语言哪个学习难度更大呢?虽然两者的区别挺大的,但是学习难度上并不能 ...

  5. python基础练习题:棋盘【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    python基础练习题:棋盘[难度:1级]: 编写打印N行M列下列规则棋盘的程序: 左上角单元格必须是一个星号(*) 任何细胞接触(左,右,上,下)有星号的小区必须是一个点(.) 任何细胞接触(左,右 ...

  6. 集美大学c语言大作业,集美大学c语言练习题

    集美大学c语言练习题 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 1运行程序,为什么结果会如此?⑴#include int main ...

  7. python第六篇文件处理类型

    阅读目录 一 文件操作 二 打开文件的模式 三 操作文件的方法 四 文件内光标移动 五 文件的修改 文件处理 上节课复习 文件处理b模式 文件处理其他模式 seek  的补充  迭代器和生成器 生成器 ...

  8. C语言练习题的错题集

    @C语言练习题错题集 判断题错题集 1.在对数组全部元素赋初值时,不可以省略行数,但能省略列数. 对于数组来说,列数是不可以省略的,相反的可以省略行数. 2.数组名就是一个指针常量,指向数组的首元素( ...

  9. python和perl语言的区别_Perl 和 Python 的比较 【转】

    作为万年Perl 党表示最近开始学Python 了,下面会记录一下学习中Python 和Perl 的对比,如果你也是一个Perl 用户,看过了也会对Python 有一个大致的印象吧. 事实上,写着写着 ...

最新文章

  1. flexpaper 背景色变化
  2. [建筑可视化]Evermotion-Archinteriors for UE4
  3. 关于渗透的一些思路持续更新(自我理解)
  4. python 共现矩阵_Python词组共现矩阵
  5. BEGIN-1 A+B问题
  6. 【转】sql表及字段命名规范
  7. c# 整数类型转byte_C#中数据类型的整数类型
  8. 如何设置IE8的WebBrowser控件(MSHTML) 的渲染模式
  9. Linux文本复制到记事本文本文件乱码,解决“在windows里的记事本里编辑的汉字文本文件,上传到linux服务器上出现乱码“问题...
  10. 01_Java语言基础部分(数据类型与表达式、流程控制语句、数组与方法)
  11. Linux平台kafaka安装及使用
  12. 西门子g120变频器接线图_西门子G120变频器参数设置,快速使用
  13. HTML小游戏4 —— 简易版英雄联盟(附完整源码)
  14. thinkpad e480安装win7
  15. Linux中update和upgrade的区别
  16. VS2005中使用Qt4.8.5遇到的问题
  17. Visio中插入Mathtype公式
  18. java rnn生成古诗_Char-RNN生成古诗
  19. 默克尔树 Merkle树之Go语言实现
  20. 强连通分量/点双连通分量/边双联通分量 总结

热门文章

  1. 今天,大佬云集的夜幕团队正式成立了!
  2. python画魄罗代码_《英雄联盟》官方超萌原画欣赏 百变小魄罗COS众英雄
  3. 市政管道修复的检查工作有哪些
  4. 可用作职业规划的性格测试
  5. 关于配置双数据源报错org.apache.ibatis.binding.BindingException: Type interface is not known to the MapperRegis
  6. xmind打不开文件
  7. Substance Painter - Blender - UE4/5 低模 高模 烘焙 ID 流程
  8. DIV+CSS IE6/IE7/IE8/FF兼容问题大全
  9. 学霸式内驱力:追求更高水平的满足感
  10. python 进阶第五关 进阶任务_Python 进阶