【python之路21】用户登陆程序函数
一、用户登陆函数实例
1、注意:以后写函数时必须在函数第一行后按回车加入“”““”“””两对三引号后回车,此时会自动列出参数值,注释函数的作用、参数的用法和返回值
#!usr/bin/env python
# -*- coding:utf-8 -*-
def LogIn(username,password):
"""
读取login文件的用户名和密码进行校验
:param username: 传入用户名
:param password: 传入密码
:return: 如果用户名和密码匹配则返回True,否则返回False
"""
with open('login','r',encoding='utf-8') as f:
for line in f:
line = line.strip()
login = line.split('$')
if username == login[0] and password == login[1]:
return True
return False bol = LogIn('tqg','')
if bol:
print('登陆成功')
else:
print('登陆失败')
2)用户登陆及注册功能
#!usr/bin/env python
# -*- coding:utf-8 -*-
def LogIn(username,password):
"""
读取login文件的用户名和密码进行校验
:param username: 传入用户名
:param password: 传入密码
:return: 如果用户名和密码匹配则返回True,否则返回False
"""
with open('login','r',encoding='utf-8') as f:
for line in f:
line = line.strip()
login = line.split('$')
if username == login[0] and password == login[1]:
return True
def register(username,password):
"""
用户注册实现
:param username: 用户名
:param password: 密码
:return: None,把用户名和密码按照 用户名$密码 格式写入login文件
"""
with open('login','a',encoding='utf-8') as f:
emp = '\r' + username + '$' + password
f.write(emp)
def user_exist(uname):
"""
判断文件中是否存在用户名
:param uname: 用户名
:return: 如果存在则返回True,不存在则返回False
"""
with open('login','r',encoding='utf-8') as f:
for line in f:
line = line.strip()
line_list = line.split('$')
if line_list[0] == uname:
return True
return False
def main():
emp = input("登陆请输入1;注册请输入2:")
uname = input("请输入用户名:")
pwd = input("请输入密码:")
if emp == "":
if LogIn(uname,pwd):
print('登陆成功!')
else:
print('登陆失败!')
elif emp == "":
if user_exist(uname):
print('用户名已存在,不允许注册。')
else:
register(uname,pwd)
print("注册成功!")
else:
print('您输入的命令不正确!') main()
【python之路21】用户登陆程序函数的更多相关文章
- python之路:用户输入(一)
python之路:用户输入(一) 好了,现在我学了点博客的用法,现在不会像以前的那么土了.好吧,不多说,我要讲课了. 今天,我会用情景实例给大家说这个用户输入. 情景是:你是IT教育的python带头 ...
- Python手把手教程之用户输入input函数
函数input() 函数 input() 让程序暂停运行,等待用户输入一些文本.获取用户输入后,Python将其存储在一个变量中,以方便你使用. 例如,下面的程序让用户输入一些文本,再将这些文本呈现给 ...
- 【python之路18】内置函数,补充请看【python之路46】
1.abs(number)表示某个数字的绝对值 print(abs(-123)) #打印出123 2.all(iterable) 表示可迭代的参数全部为True那么返回True,否则返回False r ...
- Python之路 day2 购物车小程序1
#Author:ersa ''' 程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时 ...
- Python之路 day1 用户登录多次被锁定
编写登陆接口: 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 #Author:ersa import getpass,os,sys #读取账户信息到内存中 try: accounts_fil ...
- python之路——21
复习 1.序列化:数据类型转换成字符串的过程 为了方便存储和网络传输2.序列化模块: 1.json 1.dumps 2.loads 3.dump 和文件相关 4.load 不能load多次 2.pic ...
- python之路--动态传参,作用域,函数嵌套
一 . 动态传参(重点) * , ** * 与 ** * 在形参位置. * 表示不定参数, 接收的是位置参数 接收到的位置参数的动态传参: 都是元组 def eat(*food): # 在形参这里 ...
- 【Python之路】特别篇--property()函数 和 @property 装饰符
Python中有一个被称为属性函数(property)的小概念,它可以做一些有用的事情.在这篇文章中,我们将看到如何能做以下几点: 将方法转换为只读属性 重新实现一个属性的setter和getter方 ...
- 【python之路46】内置函数2,是【python之路18】的补充
将3.5版本中的68个内置函数,按顺序逐个进行了自认为详细的解析.为了方便记忆,将这些内置函数进行了如下分类: 数学运算(7个) 类型转换(24个) 序列操作(8个) 对象操作(7个) 反射操作(8个 ...
随机推荐
- LintCode_13 字符串查找
题目 对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始).如果不存在,则返回 -1. 您在真实的面 ...
- 安装office2019
win10系统安装office2019 安装文件下载 https://pan.baidu.com/s/1VnqJ-hNwysPKBhdzE3FSww#list/path=%2F&parentP ...
- eclipse下项目复制改名注意事项
当在Eclipse下复制Web工程时 1.需要修改复制后新工程源码文件下 .settings 文件夹下的org.eclipse.wst.common.component中的内容为本工程名,明细如图:
- parameter–precharge, tRCD and tRAS
以下描述来自wikipeida : https://en.wikipedia.org/wiki/Synchronous_dynamic_random-access_memory 几点总结: (1) 每 ...
- jQuery5事件相关
一.注册事件的方式 1.直接注册事件 $(this).事件名(动作函数)://$(this).click(fucntion(){//动作代码}); 2.bind同时给一个对象注册多个事件 $(this ...
- Linux下IP修改后重启服务器 oralce 出错(监听无法启动)
针对linux下修改IP导致的Oracle不能启动问题的解决 主要修改/etc/hosts配置文件.修改前配置: # Do not remove the following line, or vari ...
- 浓缩版 《C和指针》基础篇(Chpt.1~Chpt.9)
导语 近日,笔者在课业之余阅读了<C和指针(Pointers on C)> (by Kenneth A.Reek)一书,从中记录了关于C语言的诸多知识点,包括在C语言基础特性的学习过程中没 ...
- UVa-401 Palindromes回文词
虽然是水题,但是容易错.参照了紫书的代码可以写的很简洁.主要还是注意常量数组的使用,能让代码变得简单许多 #include <iostream> #include <cstdio&g ...
- Redis源码解析:28集群(四)手动故障转移、从节点迁移
一:手动故障转移 Redis集群支持手动故障转移.也就是向从节点发送"CLUSTER FAILOVER"命令,使其在主节点未下线的情况下,发起故障转移流程,升级为新的主节点,而原 ...
- leetcode 352 & leetcode 239 & leetcode 295 & leetcode 53 & leetcode 209
lc352 Data Stream as Disjoint Intervals 可以用treemap解 key保存interval的start,value保存interval的end.分别找出当前va ...