After readding the book of《learn python3 the hard way》 (second)

第二天学习Python3, 由于时间原因只能读《learn python3 the hard way》小几个小时,不过这进度也刚刚好够我用晚上的一些空闲时间写这一份博客。
话不多说,昨天已经看到ex16了, 今天就从ex16开始(重新复习了一下),看到了ex20,通过几个简单的小程序可以说是重新学了一遍python的一些内容,由于看的是英文版,里面有一些可能没有看全,不过主要内容还是都有get到,接下来就零碎的分析一下代码吧:
ex17:
`from sys import argv
from os.path import exists

script, from_file, to_file = argv

print(f"Copying from {from_file} to {to_file}")

indata = open(from_file).read()

print(f"the input file is {len(indata)} bytes long")

print(f"Does the output file exist? {exists(to_file)}")
print(“Do you really want to do with this copy?(It will disappear the context of the last txt.)”)
print(“just input y(means yes) to continue if you want to do the covering.”)
answer = input()
if (answer == ‘y’):
out_file = open(to_file, ‘w’)
out_file.write(indata)
out_file.close()
print(“Alright, all done.”)
else:
print(“OK, nothing will be changed.”`
这里主要是通过对文件的操作,实现对文件的重写(由于是‘w’,所以也带有对第二个文件的新建功能,如果不存在的话)
说点有趣的事情,在ex17的练习中,有一道题是作者要求读者尽可能的将代码化简,作者表明他可以将其化为一行代码,于是就有萌新实在想不到方法就去“投诉”,于是就有了一段奇妙的回答:
在这里插入图片描述
哈哈,看懂了吗?
顺便将我的化简代码也附上:
在这里插入图片描述
这里是将后面的代码合并了,虽然简洁但是确实不怎么好看。。。

ex18:
在这个练习中,开始涉及函数这个重要的东西了,重要的东西有:def、函数名、函数参数、冒号、缩进等。

def print_none():
    print("I got nothing!")

这个就是一个无参的函数,作用就是print。

ex19:
在本次的练习中,主要是对函数的参数进行扩展,可以在传送参数时,对参数进行一定的操作,比如对参数进行加减乘除等,截图如下:
在这里插入图片描述
ex20:
在本次练习中,将函数和文件操作相结合,将读写命令写入函数之中,通过调用函数实现读写文件,是我感觉的较为实用的练习,代码如下:

from sys import argv

script, input_file = argv

def print_all(f):
    print(f.read())

def rewind(f):
    f.seek(0)

def print_a_line(line_count, f):
    print(line_count, f.readline())

current_file =  open(input_file) 

print("First let's print all the file:\n")

print_all(current_file)

print("rewind it")

rewind(current_file)

print("Let's print three lines:")

current_line = 1

print_a_line(current_line, current_file)

print_a_line(current_line + 1, current_file)

print_a_line(current_line + 2, current_file)

在几个函数中其他的都还好,要注意一个rewind函数,里面涉及了了文件操作的seek()方法,,seek()方法是将读写的指针跳回你所传入的参数位置,比如在本次练习中,我们传入参数0,将指针重新调回开头,然后再继续进行输入操作,具体seek函数的使用如下:

概述
seek() 方法用于移动文件读取指针到指定位置。
语法
seek() 方法语法如下:
fileObject.seek(offset[, whence])
参数
offset – 开始的偏移量,也就是代表需要移动偏移的字节数
whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
返回值
该函数没有返回值。

其他就没有什么要重点讲的东西了,多去看看代码吧。
明天会更好! 君子不器!See you next time!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值