第四次作业

1.采用os模块及os.path模块,完成输出一个指定路劲下所有的文件
当碰见文件时打印文件名称,当碰见目录时,则进入目录
使用递归完成
2.用户输入一个字符串,统计字符串中各字符出现的次数,并将结果写入本地文件
3.给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),可知至少存在一个重复的整数 假设只有一个重复的整数,请找出这个重复的数,如[1,2,3,3,4],输出3
4.编写控制台登录系统,假设已加密的账号密码存储在本地文件中,文件名为userinfo.text,用户输入账户名及密码,并验证登录,提示是否登录成功

1. 这个任务可以通过Python中的os模块和os.path模块以及递归来完成

import os

def list_files(path):
    for item in os.listdir(path):
        item_path = os.path.join(path, item)
        if os.path.isfile(item_path):
            print("文件:", item)
        elif os.path.isdir(item_path):
            print("目录:", item)
            list_files(item_path)

# 指定路径下的所有文件
path = "/your/specified/path"
list_files(path)

2. 用户输入一个字符串,统计字符串中各字符出现的次数,并将结果写入本地文件可以用以下代码实现:

def count_characters(input_string):
    char_count = {}
    for char in input_string:
        if char in char_count:
            char_count[char] += 1
        else:
            char_count[char] = 1
    return char_count

def write_to_file(char_count):
    with open("character_count.txt", "w") as file:
        for char, count in char_count.items():
            file.write(f"{char}: {count}\n")

input_string = input("请输入一个字符串: ")
char_count = count_characters(input_string)
write_to_file(char_count)

3. 给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),至少存在一个重复的整数

def find_duplicate(nums):
    seen = set()
    for num in nums:
        if num in seen:
            return num
        seen.add(num)

# 示例
nums = [1, 2, 3, 3, 4]
duplicate = find_duplicate(nums)
print("重复的数:", duplicate)

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

def read_userinfo():
    userinfo = {}
    with open("userinfo.txt", "r") as file:
        for line in file:
            username, password = line.strip().split(",")
            userinfo[username] = password
    return userinfo

def login():
    userinfo = read_userinfo()
    username = input("请输入用户名: ")
    password = input("请输入密码: ")
    if username in userinfo and userinfo[username] == password:
        print("登录成功!")
    else:
        print("用户名或密码错误!")

login()
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值