欢迎来到个人简历网!永久域名:gerenjianli.cn (个人简历全拼+cn)
当前位置:首页 > 范文大全 > 实用文>python学习之路之案例0(实现登录功能,登录错误次数

python学习之路之案例0(实现登录功能,登录错误次数

2023-02-02 08:33:03 收藏本文 下载本文

“周不胖”通过精心收集,向本站投稿了5篇python学习之路之案例0(实现登录功能,登录错误次数,下面就是小编给大家分享的python学习之路之案例0(实现登录功能,登录错误次数,希望大家喜欢!

python学习之路之案例0(实现登录功能,登录错误次数

篇1:python学习之路之案例0(实现登录功能,登录错误次数

一、整个案例运用到的知识点

1.python字典、字符串、列表的灵活转换和使用

2.python数据结构之字符串:字符串的格式化、字符串的去空格(strip)

3.python数据结构之字典:字典的构建、字典和字符串的转换

4.python数据结构列表:列表的构建、列表和字符串的转换

5.if....else....判断的使用

6.for循环、while True死循环的使用

5.文件的打开、读取、关闭等功能的使用

二、整个案例的设计的中心思想

1.首先读取用户表文件里面的字符串:包括用户名和密码,并将其转化列表,然后转换为为字典

2.然后读取登陆次数文件文件里面的字符串,包括用户名,登录错误次数,并将其转为列表,然后转为字典

3.最后将用户登录错误的次数、用户登录的用户名、用户登录的密码,进行判断,并将用户名、登录错误次数写入到data1文件中去。

三、代码实现的功能

1.用户使用用户名、密码登录

2.登录错误次数超过3次,自动退出登录,并显示登录错误次数超过3次

3.登录用户名、密码正确,显示成功登录

4.登录用户名、密码错误,显示登录错误。

四、代码

#!/usr/bin/env python# -*- coding:utf-8 -*-message_dict = {} #新建一个字典,用来存储用户名跟密码obj1 = file('data','r') #以只读的方式打开data文件,返回obj1句柄for i in obj1: #遍历句柄 line1 = i.strip() #去掉每一行的空格 line1_list = line1.split('|') #并以分隔符“|”将每一行进行分割,并返回列表 message_dict[line1_list[0]]=line1_list[1] #将用户名和密码以字典的形式存储在message_dict字典中obj1.close() #关闭data文件count_dict = {} #新建字典,用来存储用户名和登录错误次数obj2 = file('data1','r') #以只读的方式打开文件data1,返回obj2句柄for j in obj2: #遍历obj2句柄 line2 = j.strip() #去掉每一行的空格 line2_list = line2.split('|') #并以分隔符“|”将每一行进行分割,并返回列表 count_dict[line2_list[0]] = int(line2_list[1]) #将用户名和密码以字典的形式存储在count_dict字典中obj2.close() #关闭data1文件#print count_dict#print message_dictname = raw_input(“plz input name:”) #提示用户输入用户名pwd = raw_input(“plz input password:”) #提示用户输入密码while True: if name not in message_dict.keys(): #首先判断用户输入的用户名是否在用户列表中是否存在 print “no this user!!” #打印提示信息,没有此用户 name = raw_input(“plz input name again:”) #让用户再次输入合法的用户名和密码 pwd = raw_input(“plz input password again:”) #判断用户名输错的次数,是否大于3次,大于3次直接跳出循环 if count_dict[name] >3: print “login failed ,login_failed count >3” break #用户输入的次数小于3次 else: #如果用户输入的密码和用户对应的密码匹配,就显示登录成功并退出循环 if pwd == message_dict[name]:print “login success”break #如果密码不匹配,就提示用户再次输入用户名和密码 else:print “login failed”name = raw_input(“plz input name again:”)pwd = raw_input(“plz input password again:”)#并将登录错误次数自增1count_dict[name] = count_dict[name] + 1#打开data1文件,并更改后的登录错误次数和用户名写入文件obj3 = file('data1','r+')for k in count_dict.keys(): line3 = “%s|%s\n” %(k,count_dict[k]) #将列表中的元素组成这种类型字符串:jachy|0 obj3.write(line3) #将字符串写入文件data1中#关闭文件obj3.close()

数据文件1:data,存储用户名、密码

lilin|123456jachy|321123wangning|123456

数据文件2:data1,存储用户名、登录错误次数

jachy|0wangning|0lilin|0

篇2:Python实现登录人人网并抓取新鲜事的方法

作者:断鸿 字体:[增加 减小] 类型:

这篇文章主要介绍了Python实现登录人人网并抓取新鲜事的方法,可实现Python模拟登陆并抓取新鲜事的功能,需要的朋友可以参考下

本文实例讲述了Python实现登录人人网并抓取新鲜事的方法,分享给大家供大家参考。具体如下:

这里演示了Python登录人人网并抓取新鲜事的方法(抓取后的排版不太美观~~)

from sgmllib import SGMLParserimport sys,urllib2,urllib,cookielibclass spider(SGMLParser): def __init__(self,email,password): SGMLParser.__init__(self) self.h3=False self.h3_is_ready=False self.div=False self.h3_and_div=False self.a=False self.depth=0 self.names=“” self.dic={}self.email=email self.password=password self.domain=‘renren.com‘ try:cookie=cookielib.CookieJar()cookieProc=urllib2.HTTPCookieProcessor(cookie) except:raise else:pener=urllib2.build_opener(cookieProc)urllib2.install_opener(opener)def login(self): url=‘www.renren.com/PLogin.do‘ postdata={ ‘email‘:self.email, ‘password‘:self.password, ‘domain‘:self.domain } req=urllib2.Request( url, urllib.urlencode(postdata) ) self.file=urllib2.urlopen(req).read() #print self.file def start_h3(self,attrs): self.h3 = True def end_h3(self): self.h3=False self.h3_is_ready=True def start_a(self,attrs): if self.h3 or self.div:self.a=True def end_a(self): self.a=False def start_div(self,attrs): if self.h3_is_ready == False:return if self.div==True:self.depth += 1 for k,v in attrs:if k == ‘class‘ and v == ‘content‘: self.div=True; self.h3_and_div=True #h3 and div is connected def end_div(self): if self.depth == 0:self.div=Falseself.h3_and_div=Falseself.h3_is_ready=Falseself.names=“” if self.div == True:self.depth-=1 def handle_data(self,text): #record the name if self.h3 and self.a:self.names+=text #record says if self.h3 and (self.a==False):if not text:passelse: self.dic.setdefault(self.names,[]).append(text)return if self.h3_and_div:self.dic.setdefault(self.names,[]).append(text) def show(self): type = sys.getfilesystemencoding() for key in self.dic:print ( (‘‘.join(key)).replace(‘ ‘,‘‘)).decode(‘utf-8‘).encode(type), \ ( (‘‘.join(self.dic[key])).replace(‘ ‘,‘‘)).decode(‘utf-8‘).encode(type)renrenspider=spider(‘your email‘,‘your password‘)renrenspider.login()renrenspider.feed(renrenspider.file)renrenspider.show()

希望本文所述对大家的Python程序设计有所帮助,

篇3:perl脚本实现限制ssh最大登录次数(支持白名单)

这篇文章主要介绍了perl脚本实现限制ssh最大登录次数,脚本支持支持白名单设置,例如root可以不限制登录次数,需要的朋友可以参考下

ssh limit perl脚本主要作用:

1.限制一个ssh用户的最大登录数为n,n可自定义,

2.支持白名单,如root、test登录不受限制。

如果一个ssh用户的最大登录数超过指定数字,则后登录的会把先前登录的踢掉,以此达到控制登录数的目的。

该脚本需要主机支持perl,如果没有,可yum安装。

脚本源码:

#!/usr/bin/perl -wuse strict;#white listmy @ALLOW_USERS = qw{ test root lulu1};#the maximum number of ssh loginmy $LOGIN_TIMES = 1;sub main{ my @lines = `ps -eo user,pid,etime,cmd | grep sshd`; my $users; for my $line (@lines) { if(my ($user, $pid, $etime, $cmd) = $line =~ /^([^\s]+)\s+(\d+)\s+([^\s]+)\s+(sshd:.+)$/) {next if grep {$user eq $_} @ALLOW_USERS;my $proc = {‘pid‘, $pid, ‘etime‘, $etime, ‘cmd‘, $cmd};push @{$users->{$user}}, $proc; } } for my $key(keys(%$users)) { my @sshs = sort {my ($lb, $la) = (length($b->{‘etime‘}), length($a->{‘etime‘}));if($lb == $la) { $b->{‘etime‘} cmp $a->{‘etime‘};} else { $lb <=>$la;} } @{$users->{$key}}; $LOGIN_TIMES = 1 if $LOGIN_TIMES < 1; for (1 .. $LOGIN_TIMES) { pop @sshs; }; for my $ssh (@sshs) {kill 9, $ssh->{‘pid‘}; } }}while(1) { main; sleep 3;}

【使用方法】

另存脚本存到root目录,命名为limit.pl,然后执行:

echo “/root/limit.pl &” >>/etc/rc.d/rc.local (加入开机启动)/root/limit.pl & (运行脚本)

篇4:python学习之最简单的用户注册及登录验证小程序

正如很多同学所知道的,楼主开始学习python了,前进的道路曲曲折折,有荆棘也有陷阱,从最简单的小程序写起,每天练习,将python进行到底,

有一点比较别扭的就是python的换行之后空四个空格,ruby都是两个,并且python在方法和循环语句的第一句都要加冒号.

首先先来做一些准备工作,mysql里查看表结构以及增加列的语句:

show create table user;

alter table user add salt char(10);

md5和sha1大家可以自己选

import hashlib

In [64]: passwd=’111111′

In [67]: md5pass=hashlib.md5(passwd)

In [69]: hashlib.md5(passwd).hexdigest

Out[69]: ’96e79218965eb72c92a549dd5a330112′

In [70]: hashlib.sha1(passwd).hexdigest()

Out[70]: ’3d4f2bf07dc1be38b20cd6e46949a1071f9d0e3d’

In [71]: len(hashlib.sha1(passwd).hexdigest())

Out[71]: 40

In [72]: import string

In [73]: import random

In [74]: string.letters

Out[74]: ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’

In [75]: string.digits

Out[75]: ’0123456789′

In [76]: string.digits+string.letters

Out[76]: ’0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’

In [77]: random.sample(string.letters,5)

Out[77]: ['S', 'E', 'w', 'F', 'L']

In [78]: ”.join(random.sample(string.letters,10))

篇5:DX1.5修改密码错误次数过多,请 15 分钟后重新登录的时间限制

找到./source/function/function_member.php

搜索

$return = (!$login || (TIMESTAMP - $login['lastupdate'] >900)) ? 4 : max(0, 5 - $login['count']);将其中的900修改为更小的值,以在最短的时间内登录不小心输入错误的站点,

DX1.5修改密码错误次数过多,请 15 分钟后重新登录的时间限制

为了站点安全,请登录成功后,将这个值还原。

【python学习之路之案例0(实现登录功能,登录错误次数】相关文章:

1.超星学习通官方登录入口

2.雅思口语典型错误案例之中式英语自造词

下载word文档
《python学习之路之案例0(实现登录功能,登录错误次数.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度: 评级1星 评级2星 评级3星 评级4星 评级5星
点击下载文档

文档为doc格式

python学习之路之案例0(实现登录功能,登录错误次数相关文章
最新推荐
猜你喜欢
  • 返回顶部