1.采用os模块及os.path模块,完成输出一个指定路劲下所有的文件
当碰见文件时打印文件名称,当碰见目录时,则进入目录
使用递归完成
import os
from os import path
def opens(res):
if path.isfile(res):#当是文件时打开
print(res)
elif path.isdir(res):#当时目录时进入
for i in os.listdir(res):
opens(path.join(res,i))
if __name__ == "__main__":
res = path.abspath(".")
opens(res)
2.用户输入一个字符串,统计字符串中各字符出现的次数,并将结果写入本地文件
import io
str = input()
arr = []
for i in str:
if i not in arr:
arr.append(i)
count = [0]*len(arr)
for i in str:
if i in arr:
count[arr.index(i)] += 1
f = open("HomeWork/sss.text","r+")
f.write(count)
f.close()
#f.write无法写入list类型 这里没有写入成功
3.给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),可知至少存在一个重复的整数 假设只有一个重复的整数,请找出这个重复的数,如[1,2,3,3,4],输出3
nums = list(map(int,input().split()))
arr = []
for i in nums:
if i not in arr:
arr.append(i)
count = [0]*len(arr)
for i in nums:
if i in arr:
count[arr.index(i)] += 1
for i in range(len(count)):
if count[i] > 1:
print(nums[i])
4.编写控制台登录系统,假设已加密的账号密码存储在本地文件中,文件名为userinfo.text,用户输入账户名及密码,并验证登录,提示是否登录成功
import hashlib
import io
salt = "futao"
f = open("HomeWork\\userinfo.text","r+")
user = f.readline()
user = user[0:len(user)-1]
pwd =f.readline()
us = hashlib.md5(user.encode("utf-8"))#加密后的用户名
pw = hashlib.md5(pwd.encode("utf-8"))#加密后的密码
us.update(salt.encode("utf-8"))#加盐后的用户名
pw.update(salt.encode("utf-8"))#加盐后的密码
def md5_enctyption(input_str):
res = hashlib.md5(input_str.encode("utf-8"))#md5加密
res.update(salt.encode("utf-8"))#盐值加密
print(res.hexdigest())
return res.hexdigest()#返回加密后字符序列
# #验证登录成功的函数
def is_login(username,password):
#2.验证
#自定添加其他验证,比如去除空格,是否为空等等
if username == us.hexdigest() and password == pw.hexdigest():
return True
else:
return False
if __name__ == "__main__":
username = input("请输入用户名:")
password = input("请输入密码:")
print(username)
print(password)
print("登录成功" if is_login(md5_enctyption(username),md5_enctyption(password)) else"登录失败")