python练习(1)

案例一:

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

代码部分:

import os
from os import path

def printFile(Dir):
    cata = os.listdir(Dir)  # cata为目录列表
    for i in cata:  # 通过for循环遍历目录列表,并判断列表内每个文件
        if path.isdir(Dir + path.altsep + i):   # 判断是否为目录,是则继续执行函数
            printFile(Dir + path.altsep + i)
        else:
            print(path.basename(Dir + path.altsep + i))

if __name__ == "__main__":
    printFile("C:/Users/黄文乐/PycharmProjects/pythonProject")

运行结果:

案例二:

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

代码部分:

# 判断字符出现的次数函数
def charCounts(char, str):
    nums = 0
    for i in str:
        if i == char:
            nums += 1
    return nums


if __name__ == '__main__':
    str = input()
    with open("C:/Users/黄文乐/PycharmProjects/pythonProject/classWork/work2.text", "w", encoding="utf-8") as f:

        arr = []    # 用来统计出现的字符,简单来说就是去重
        # 去重操作
        for i in str:
            if i in arr:
                continue
            arr.append(i)
        # 写入操作
        for j in arr:
            f.write(f"{j}出现的次数为:{charCounts(j, str)}次\n")

运行结果:

案例三:

用户输入n,给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的数。

如[1,2,3,3,4],输出结果为:3

代码部分:

import random

# 查找重复数字函数
def findRepetitionsNum(arr):
    countsList = [0] * len(arr)     # 计数数组,用来统计数字出现的次数
    for i in arr:   # 循环数组,统计数字出现的次数
        countsList[i - 1] += 1
    for j in range(len(countsList)):
        if countsList[j] >= 2:      # 判断数字出现的次数,超过两次则打印输出该数字
            print(j + 1, end=" ")
# 生成随机数组函数
def randomList(n):
    arr = []
    for i in range(n + 1):
        arr.append(random.randint(1,n))
    return arr

if __name__ == '__main__':
    n = int(input())
    res = randomList(n)
    print(res)
    findRepetitionsNum(res)

运行结果:

案例四:

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

代码部分:

import hashlib


# 定义加密函数
def md5_encryption(str):
    salt = "hwl"
    res = hashlib.md5(str.encode("utf-8"))
    res.update(salt.encode("utf-8"))
    return res.hexdigest()


# 判断是否登录成功
def isLogin(name, pwd):
    with open("C:/Users/黄文乐/PycharmProjects/pythonProject/classWork/userInfo.text", "r") as f:
        # 这里要注意,读取文本多行进行对比时时需要用到strip()去除换行符或括号
        if name == f.readline().strip() and pwd == f.readline().strip():
            print("登录成功!")
        else:
            print("登录失败!")


# 将加密后的用户名和密码存储到文件中
with open("C:/Users/黄文乐/PycharmProjects/pythonProject/classWork/userInfo.text", "w") as f:
    f.write(md5_encryption("obboda") + "\n" + md5_encryption("ob123456"))

if __name__ == "__main__":
    name = input("请输入用户名:")
    pwd = input("请输入密码:")
    isLogin(md5_encryption(name), md5_encryption(pwd))

运行结果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值