案例一:
采用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))
运行结果: