python第四次作业

1、采用os模块及os.path模块,完成输出一个指定路劲下所有的文件

当碰见文件时打印文件名称,当碰见目录时,则进入目录

使用递归完成

python 复制代码
from os import path
import os


def list_files(directions):
    result = []
    for i in os.listdir(directions):  # 列出指定目录下的所有文件和子目录
        joins = path.join(directions, i)  # 这里是将当前子目录与指定目录路径拼接,得到完整路径名
        if path.isfile(joins):  # 判断碰见的是否是文件还是目录
            result.append(joins)
        elif path.isdir(joins):
            result.extend(
                list_files(joins))  # 这里如果目录,就递归调用 list_files() 函数,将该目录作为参数传递进去,以获取该目录下所有文件的路径,并将结果扩展到 result 列表中
    return result


results = list_files("D:/python文件")
for i in results:
    print(i)

运行结果:这里文件太多了,没有一一展示

这里是文件夹里的样子,的确是打开了目录里的文件的

2、用户输入一个字符串,统计字符串中各字符出现的次数,并将结果写入本地文件

python 复制代码
def count_string(input_string):  # 这个函数是用来计算输入的字符串中每个字符的出现次数
    count_char = {}
    for n in input_string:
        if n in count_char:
            count_char[n] += 1
        else:
            count_char[n] = 1
    return count_char


def main():
    input_string = input("请输入一个字符串: ")
    result = count_string(input_string)
    f = open("C:\\PyCharm文件\\python_io\\test2string", "w+")  # 这里本来用的是r+,但改成w+也可以实现,还能以确保文件存在并可以进行读写操作
    for items in result.items():  # 这里是用来遍历 result字典中的键值对的
        f.write(f"{items[0]}:{items[1]} ")  # 这里是用来将每个字符及其出现次数写入文件的,具体作用就是把键值对格式化为字符串


if __name__ == "__main__":
    main()

运行结果:

3、给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),可知至少存在一个重复的整数 假设只有一个重复的整数,请找出这个重复的数,如[1,2,3,3,4],输出3

python 复制代码
def count_string(input_string):  # 这里的思路和前面一致
    count_char = {}

    for n in input_string:
        if n in count_char:
            count_char[n] += 1
        else:
            count_char[n] = 1

    return count_char


def main():
    random_list = [1, 2, 3, 3, 4, 4, 5, 5, 5, 6, 6]
    result_dict = count_string(''.join(map(str, random_list)))  # 这里是把数字转化为字符串,并将字符串连接起来

    for k, v in result_dict.items():
        if v > 1:
            print(f"数字 {k} 重复了 {v} 次。")


if __name__ == "__main__":
    main()

运行结果:

4、 4.编写控制台登录系统,假设已加密的账号密码存储在本地文件中,文件名为userinfo.text,用户输入账户名及密码,并验证登录,提示是否登录成功

暂时还没设计完,有些地方运行不了,先不完整写上去了

相关推荐
数据知道4 分钟前
claw-code 源码分析:大型移植的测试哲学——如何用 unittest 门禁守住「诚实未完成」的口碑?
开发语言·python·ai·claude code·claw code
炸炸鱼.11 分钟前
Python 网络编程入门(简易版)
网络·python
技术小黑13 分钟前
TensorFlow学习系列10 | 数据增强
python·深度学习·tensorflow2
小堃学编程13 分钟前
【项目实战】基于protobuf的发布订阅式消息队列(2)—— 线程池
java·开发语言
万粉变现经纪人16 分钟前
如何解决 import aiohttp ModuleNotFoundError: No module named ‘aiohttp’
python·scrapy·beautifulsoup·aigc·pillow·pip·httpx
每日任务(希望进OD版)19 分钟前
线性DP、区间DP
开发语言·数据结构·c++·算法·动态规划
怨言.20 分钟前
Java内部类详解:从基础概念到实战应用(附案例)
java·开发语言
AC赳赳老秦20 分钟前
OpenClaw image-processing技能实操:批量抠图、图片尺寸调整,适配办公需求
开发语言·前端·人工智能·python·深度学习·机器学习·openclaw
XiYang-DING21 分钟前
【Java】 Java 集合框架
java·开发语言
charlie11451419122 分钟前
嵌入式C++教程实战之Linux下的单片机编程(9):HAL时钟使能 —— 不开时钟,外设就是一坨睡死的硅
linux·开发语言·c++·单片机·嵌入式硬件·c