1.采用os模块及os.path模块,完成输出一个指定路劲下所有的文件
当碰见文件时打印文件名称,当碰见目录时,则进入目录
使用递归完成
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))
return result
results= list_files("D:/python")
for i in results:
print(i)
输出结果:
2.用户输入一个字符串,统计字符串中各字符出现的次数,并将结果写入本地文件
def count_string(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
input_string = input("请输入一个字符串: ")
char_count = count_string(input_string)
print(char_count)
file_path = 'python_io/char_count.txt'
print(f"字符计数已写入文件: {file_path}")
输出结果:
3.给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),可知至少存在一个重复的整数 假设只有一个重复的整数,请找出这个重复的数,如[1,2,3,3,4],输出3
def count_string(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
list = [1,2,2,3,4,4]
input_string = ''.join(map(str,list))
results = count_string(list)
for key,value in results.items():
if value >= 2:
print(key)
输出结果:
4.编写控制台登录系统,假设已加密的账号密码存储在本地文件中,文件名为userinfo.text,用户输入账户名及密码,并验证登录,提示是否登录成功
"""
测试登录过程
username 及 password都素加密的
1.模拟存储在数据库中的用户名和密码就是我们自定义模块中加密的用户名和密码
2.获取用户输入的用户名和密码 进行加密处理
3.验证是否登录成功
"""
import TestHashLib as thl #自定义模块--已存在了加密后username 及 password
import hashlib
#测试获取加密的用户名(zhangsan)和密码(123456)
#模拟当前获取的加密username password 就存储在数据库MySQL中
username_mysql = thl.u.hexdigest()
password_mysql = thl.p.hexdigest()
salt = "yx" #盐值 --->干扰项,一般就是一堆字符
#定义加密函数
def md5_encryption(input_str):
res = hashlib.md5(input_str.encode("utf-8")) #md5加密
res.update(salt.encode("utf-8")) #盐值加密
return res.hexdigest() #返回加密后字符序列
#验证登陆成功的函数
def is_login(username,password):
#1.获取数据库中的用户名和密码(已有)
#2.验证
#自定义添加其他验证,比如去除空格,是否为空等等
return True if username == username_mysql and password == password_mysql else False
#测试
if __name__ == "__main__":
username = input("请输入用户名:")
password = input("请输入密码:")
print("登陆成功 "if is_login(md5_encryption(username),md5_encryption(password)) else "登陆失败")
输出结果: