python初级第四次作业

1.采用os模块及os.path模块,完成输出一个指定路劲下所有的文件
当碰见文件时打印文件名称,当碰见目录时,则进入目录
使用递归完成

import os
from os import path 

file_path = "C:\\Users\\朱\Desktop\\PythonCodes"
def printfile(file_path):
    if path.isdir(file_path):#判断是否是文件夹
        for i in os.listdir(file_path):#把文件夹里面的内容转为列表遍历
            file_path_i = path.join(file_path,i)#用join拼接路径
            printfile(file_path_i)
    if path.isfile(file_path):#判断是否是文件
        print(path.basename(file_path))
    
printfile(file_path)


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

def CountCharsAndWriteToFile(input_string,filename):# 定义一个函数CountCharsAndWriteToFile,输入是一个字符串和一个文件名
    char_count = {}#统计字符串出现次数
    for char in input_string: # 遍历输入字符串中的每个字符
        if char in char_count: # 如果字符已经在字典中,则增加对应的计数
            char_count[char] += 1
        else:# 如果字符不在字典中,则添加到字典并初始化计数为1
            char_count[char] = 1 
     # 打开指定的文件,模式设为读写(若文件不存在则会报错)
    f = open(filename,"r+")
    for char,count in char_count.items():
        f.write(f"'{char}' : {count}\n")  # 每个条目格式化为“'字符' : 出现次数\n”

input_str = input()# 从用户处获取一个输入字符串
file_path = "test\\testio.text"# 指定要写入的文件路径
CountCharsAndWriteToFile(input_str, file_path)# 调用函数,传入输入字符串和文件路径
print(f"字符统计完成并已写入到文件:{file_path}")# 输出提示信息,告知操作已完成


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

def findRepeatNum(nums):# 定义一个函数findRepeatNum,用于寻找列表中的重复数字
    repeat = set()# 创建一个空集合repeat,用来存储出现过的数字
    for num in nums:# 遍历列表中的每个数字num
        if num in repeat: # 如果num已经存在于repeat集合中,说明它是一个重复的数字,直接返回该数字
            return num
        repeat.add(num)# 如果num还没有出现过,则将其添加到repeat集合中

nums = [1, 2, 3, 3, 4]
print(findRepeatNum(nums))# 调用findRepeatNum函数,并打印找出的重复数字


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

def read_user_info(file_path):
    """从文件中读取用户信息"""
    user_info = {}
    file = open(file_path,"r+")
    for line in file:
        username, password = line.strip().split(',')
        user_info[username.upper()] = password.upper()  # 假设的加密方式:转大写
    file.close()  # 确保文件被正确关闭
    return user_info

def login(user_info):
    """验证用户登录"""
    username = input("请输入用户名:").upper()
    password = input("请输入密码:").upper()
    
    if username in user_info and user_info[username] == password:
        print("登录成功!")
    else:
        print("登录失败,用户名或密码错误。")

file_path = "userinfo.txt"
user_info = read_user_info(file_path)
login(user_info)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值