鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[课后作业] 第053讲:永久存储(上)| 课后测试题及答案

  [复制链接]
发表于 2025-5-13 10:19:41 | 显示全部楼层
5请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

第 6 题的答案是:

第 7 题的答案是:

第 8 题的答案是:

第 9 题的答案是:

第 10 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:



请将第 1 题的代码写在下方:



请将第 2 题的代码写在下方:



请将第 3 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-5-13 23:36:48 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------
1

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

第 6 题的答案是:

第 7 题的答案是:

第 8 题的答案是:

第 9 题的答案是:

第 10 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:



请将第 1 题的代码写在下方:



请将第 2 题的代码写在下方:



请将第 3 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-5-14 22:04:36 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

第 6 题的答案是:

第 7 题的答案是:

第 8 题的答案是:

第 9 题的答案是:

第 10 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:



请将第 1 题的代码写在下方:



请将第 2 题的代码写在下方:



请将第 3 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-5-18 05:29:05 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:不会,会创建一个

第 1 题的答案是:flush()

第 2 题的答案是:从文件对象中读取一行字符串(包括换行符),读取3个字符

第 3 题的答案是:一行

第 4 题的答案是:\n

第 5 题的答案是:把\识别成转义字符了

第 6 题的答案是:w会把文件内容清空

第 7 题的答案是:可以

第 8 题的答案是:指向文件当前位置

第 9 题的答案是:文件末尾(end of the file)

第 10 题的答案是:tell()

-------- 动动手 --------

请将第 0 题的代码写在下方:
c = open(r"C:\Users\29921\Downloads\FishC.txt", 'r')
d = open('FishD.txt', 'w')
a = []

c.seek(10)
a = c.read(5)
d.write(a)

c.close()
d.close()

请将第 1 题的代码写在下方:
c = open(r"C:\Users\29921\Downloads\FishC.txt", 'r+')
c.seek(0)
c.truncate(15)
c.close()

请将第 2 题的代码写在下方:
f = open('open_myself.py', 'r')
for i in f:
    print(i)

f.close()

请将第 3 题的代码写在下方:
j = open("C:\Users\29921\Downloads\hw\test.jpg", 'w+')
z = open("C:\Users\29921\Downloads\hw\target.zip", 'r')

j.writelines(z.truncate(EOF))

j.close()
z.close()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-5-20 08:41:49 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

第 6 题的答案是:

第 7 题的答案是:

第 8 题的答案是:

第 9 题的答案是:

第 10 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:



请将第 1 题的代码写在下方:



请将第 2 题的代码写在下方:



请将第 3 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-5-20 17:13:34 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:会报错

第 1 题的答案是:不知道

第 2 题的答案是:从第三行开始读

第 3 题的答案是:一行

第 4 题的答案是:因为写入本身就自带一个换行符

第 5 题的答案是:将‘\’改成双反斜杠或将反斜杠改成正斜杠

第 6 题的答案是:文件备份,不然会覆盖已经存在的文件

第 7 题的答案是:可以

第 8 题的答案是:定位的作用

第 9 题的答案是:不知道

第 10 题的答案是:tell()

-------- 动动手 --------

请将第 0 题的代码写在下方:



请将第 1 题的代码写在下方:



请将第 2 题的代码写在下方:



请将第 3 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-5-22 09:25:30 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

第 6 题的答案是:

第 7 题的答案是:

第 8 题的答案是:

第 9 题的答案是:

第 10 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:



请将第 1 题的代码写在下方:



请将第 2 题的代码写在下方:



请将第 3 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-5-23 08:44:14 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:写完丢失了

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

第 6 题的答案是:

第 7 题的答案是:

第 8 题的答案是:

第 9 题的答案是:

第 10 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:



请将第 1 题的代码写在下方:
FishAFishBFishC


请将第 2 题的代码写在下方:
f = open('open_myself.py')

for i in f:
    print(i,end='')


请将第 3 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-5-23 19:53:18 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:会报错

第 1 题的答案是:可以使用多种方法例如
with open('example.txt','w')as file:
file.write('Hello,World!')
file.flush()
file.write

第 2 题的答案是:最多读取3个字节(二进制模式)或3个字符(文本模式),但不会跨行读取

第 3 题的答案是:3行字符串

第 4 题的答案是:每行末尾的 \n 会被保留,而 print(each) 默认会在输出末尾再加一个换行符

第 5 题的答案是:这个错误是因为 Python 将字符串中的 \U 当作 Unicode 转义字符(类似 \uXXXX 或 \UXXXXXXXX),但 \Users 不是合法的 Unicode 转义序列,所以会报错。

第 6 题的答案是:“'w' 模式是危险的,操作前务必确认文件可覆盖,路径可写!”

第 7 题的答案是:可以使用“a"模式打开,如果没有回自动创建

第 8 题的答案是:记录当前在文件中的读写位置

第 9 题的答案是:文件结束符,是计算机在读取文件时用来标识“数据已全部读取完毕”的一个标记。

第 10 题的答案是:tell()获取文件指针的位置

-------- 动动手 --------

请将第 0 题的代码写在下方:
with open('/Users/MaJun/Desktop/FishC.txt', 'r', encoding='utf-8') as f:
    content = f.read()
    extracted = content[9:15]  # 第10~15个字符(索引9~14)

with open('FishD.txt', 'w', encoding='utf-8') as f:
    f.write(extracted)


请将第 1 题的代码写在下方:
with open('/Users/MaJun/Desktop/FishC.txt', 'r+', encoding='utf-8') as f:  # 'r+' 读写模式
    content = f.read(15)  # 只读取前15个字符
    f.seek(0)             # 将指针移回文件开头
    f.truncate()          # 清空文件内容
    f.write(content)      # 写入截取的内容


请将第 2 题的代码写在下方:

with open(__file__, 'r') as f:
    print(f.read())

请将第 3 题的代码写在下方:from PIL import Image

def encode_image(input_img, secret_text, output_img):
    # 打开图片并转换为 RGB 模式
    img = Image.open(input_img).convert("RGB")
    pixels = img.load()
    width, height = img.size

    # 将文本转为二进制
    binary_text = ''.join(format(ord(c), '08b') for c in secret_text)
    # 添加终止标记(可选)
    binary_text += '1111111111111110'  # 0xFFFE 作为结束符

    # 检查图片是否能容纳数据
    max_bits = width * height * 3  # 每个像素有 R,G,B 3个通道
    if len(binary_text) > max_bits:
        raise ValueError("图片太小,无法隐藏全部文本!")

    # 嵌入数据(修改 LSB)
    index = 0
    for y in range(height):
        for x in range(width):
            r, g, b = pixels[x, y]
            # 修改 R 通道的 LSB
            if index < len(binary_text):
                r = (r & 0xFE) | int(binary_text[index])
                index += 1
            # 修改 G 通道的 LSB
            if index < len(binary_text):
                g = (g & 0xFE) | int(binary_text[index])
                index += 1
            # 修改 B 通道的 LSB
            if index < len(binary_text):
                b = (b & 0xFE) | int(binary_text[index])
                index += 1
            pixels[x, y] = (r, g, b)
            if index >= len(binary_text):
                break
        else:
            continue
        break

    # 保存含隐藏信息的图片
    img.save(output_img)
    print(f"隐藏成功!输出图片:{output_img}")

# 使用示例
encode_image("input.png", "这是隐藏的秘密", "output.png")
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-5-23 22:16:32 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:如果上層的路徑真實存在,會直接創建檔案。如果上層的路徑不存在,會報錯。

第 1 题的答案是:使用f.flush()函數

第 2 题的答案是:从文件对象中读取一行字符串(包括换行符),如果指定了 size 参数,则表示读取 size 个字符

第 3 题的答案是:FishAFishBFishC

第 4 题的答案是:因為第一行是"I love FishC.\n",其中的"\n"會換行,然後第一行才打印結束,結束時print()函數預設會換行,繼續打印第二行。於是中間就多了一行空白

第 5 题的答案是:因為python認正常斜線,\是轉譯字符

第 6 题的答案是:w模式會清空文件

第 7 题的答案是:可以

第 8 题的答案是:確定操作進行的位置

第 9 题的答案是:好像是文件末尾時會收到EOF信號,用來判斷結束

第 10 题的答案是:f.tell()

-------- 动动手 --------

请将第 0 题的代码写在下方:
file_path = Path("D:\python小甲魚\FishC.txt")
f = open(file_path, "r+")

x = f.read()
f.close()

file_path = Path("D:\python小甲魚\FishD.txt")
f = open(file_path, "w")


f.write(x[9:15])
f.close()

请将第 1 题的代码写在下方:
file_path = Path("D:\python小甲魚\FishC.txt")
f = open(file_path, "r+")

f.truncate(15)

f.close()

请将第 2 题的代码写在下方:
file_path = Path("D:\python小甲魚\作業53.py")
f = open(file_path, "r", encoding="utf-8")

x = f.read()

print(x)

请将第 3 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 7 天前 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

第 6 题的答案是:

第 7 题的答案是:

第 8 题的答案是:

第 9 题的答案是:

第 10 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:



请将第 1 题的代码写在下方:



请将第 2 题的代码写在下方:



请将第 3 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 6 天前 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:
会创建一个新的
第 1 题的答案是:
f.flush()
第 2 题的答案是:
读取第三行
第 3 题的答案是:
一行,不会换行
第 4 题的答案是:
\n是一个单独的each
第 5 题的答案是:
\\
第 6 题的答案是:
原文件内容会被截断
第 7 题的答案是:
可以吧,在开头追加
第 8 题的答案是:
指定开始读取的位置
第 9 题的答案是:
文件末尾
第 10 题的答案是:
f.seek(0,1)
f.tell()
-------- 动动手 --------

请将第 0 题的代码写在下方:
c=open('FishC.txt','r')
c.seek(10,0)
text=c.read(5)
c.close()
d=open('FishD.txt','w')
d.write(text)
d.close()


请将第 1 题的代码写在下方:
f=open('open_myself.py','r')
for each in f:
    print(each,end='')
f.close()


请将第 2 题的代码写在下方:
f=open('open_myself.py','r')
for each in f:
    print(each,end='')
f.close()


请将第 3 题的代码写在下方:
f_zip=open('target.zip','rb')
f_zip_allfile=f_zip.read(-1)
f_jpg=open('test.jpg','ab')
f_jpg.write(f_zip_allfile)
f_jpg.close()
f_zip.close()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
本帖最后由 阿归 于 2025-5-28 02:41 编辑

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:要看是什么模式,

第 1 题的答案是:f.flush()

第 2 题的答案是:表示读取3个字符,最多就是一行

第 3 题的答案是:一行字,因为没有换行符

第 4 题的答案是:???

第 5 题的答案是:把\认为是转义符
f = open("C:\\Users\\goodb\\Desktop\\FishC.txt", "w")

第 6 题的答案是:注意文件本身是空文件,或是需要清空内容的文件

第 7 题的答案是:可以,会默认创建一个文件

第 8 题的答案是:标识目前读取的位置?

第 9 题的答案是:???

第 10 题的答案是:f.tell()

-------- 动动手 --------

请将第 0 题的代码写在下方:
fo = open('C:\\Users\\Administrator\\Desktop\\FishC.txt','r+')
fo.seek(10)
word = f.read(5)
fo.close()

f = open('C:\\Users\\Administrator\\Desktop\\FishD.txt','a+')
f.write(word)
f.close()


请将第 1 题的代码写在下方:
fo = open('C:\\Users\\Administrator\\Desktop\\FishC.txt','r+')
fo.truncate(15)
fo.close()


请将第 2 题的代码写在下方:
fo = open('C:\\Users\\Administrator\\Desktop\\open_myself.py','r+')
for i in fo:
    print(i)
fo.close()


请将第 3 题的代码写在下方:

========================
查看答案后编写:注意转换完成后,要改为rar文件
f1 = open(r'C:\Users\Administrator\Desktop\test.jpg','ab')
f2 = open(r'C:\Users\Administrator\Desktop\target.zip','rb')

f1.seek(0,2)
f1.write(f2.read())
f1.close()
f2.close()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 前天 06:34 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

第 6 题的答案是:

第 7 题的答案是:

第 8 题的答案是:

第 9 题的答案是:

第 10 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:



请将第 1 题的代码写在下方:



请将第 2 题的代码写在下方:
with open('open_myself.py','r') as f:
    c = f.readlines()
    for each in c:
        print(each)


请将第 3 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 前天 14:31 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:
不会报错
第 1 题的答案是:
用flush方法
第 2 题的答案是:
读取3个字符
第 3 题的答案是:
一行
第 4 题的答案是:

第 5 题的答案是:

第 6 题的答案是:

第 7 题的答案是:

第 8 题的答案是:

第 9 题的答案是:

第 10 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:



请将第 1 题的代码写在下方:



请将第 2 题的代码写在下方:



请将第 3 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 前天 21:35 | 显示全部楼层
请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

第 6 题的答案是:

第 7 题的答案是:

第 8 题的答案是:

第 9 题的答案是:

第 10 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:



请将第 1 题的代码写在下方:



请将第 2 题的代码写在下方:



请将第 3 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-1 00:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表