【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个 ...
随机推荐
- Eclipse Java开发环境的搭建
(2019年2月19日注:这篇文章原先发在自己github那边的博客,时间是2016年9月6日) 工作室的老人家们和小朋友们组成了一个Java开发学习团队,想起之前在暑假项目中学过一点Java基础知识 ...
- 06_springmvc之参数绑定(pojo和集合)
一.包装类型pojo参数绑定 实现方法: 第一种方法:在形参中 添加HttpServletRequest request参数,通过request接收查询条件参数. 第二种方法:在形参中让包装类型的po ...
- line-height影响排版
父级div设置了line-height值,子级div会继承line-height.如果不想子级元素继承,给子级元素设置line-height:normal.
- leetcode 49 Group Anagram
lc49 Group Anagram 逻辑很简单,就是统计字母出现次数,然后将完全相同的字符串放入同一list 关键是怎么实现 统计的部分,可以通过将string排序,Arrays.sort(),或者 ...
- 廖雪峰Java11多线程编程-1线程的概念-3线程的状态
1线程的状态 线程终止的的原因: run()或call()方法执行完成,线程正常结束 线程抛出一个未捕获的Exception或Error 直接调用该线程的stop()方法来结束该线程--该方法容易导致 ...
- vue 学习 一
1.实例: var vm = new Vue({ el: '#example', data: { a:1 }, created: function () { // `this` 指向 vm 实例 co ...
- [编织消息框架][JAVA核心技术]数值与逻辑分离
为什么要分离? 业务需求是不停地变,如果把条件写进代码里,当用户需求变时要改代码发版本更新才能生效,这过程无疑是漫长的 就算是在开发期,不停的变开发者精力耗光在沟通,小修改上,无法专注逻辑部分 分离的 ...
- VitualBox虚拟机安装CentOS, shell模式与图形化界面的相互切换
方法一:永久切换 # vi /etc/inittab 编辑 init 5 为 init 3,重启就自动进入控制台方式:反之桌面模式 方法二:当前有效 桌面模式切换shell模式:Ctrl + Alt ...
- python学习笔记2_二元运算符和比较运算
一.二元操作符 a+b : a加b a-b : a减b a*b : a乘b a/b : a除以b a//b:a整除以b,表示的是返回a除以b的结果的整数部分,而不是证明了a能被b整除.要证明a能被 ...
- 2019.10.30 csp-s模拟测试94 反思总结
头一次做图巨的模拟题OWO 自从上一次听图巨讲课然后骗了小礼物以后一直对图巨印象挺好的233 T1: 对于XY取对数=Y*log(x) 对于Y!取对数=log(1*2*3*...*Y)=log1+lo ...