Skip to content

Commit 8b4a628

Browse files
authored
Add files via upload
1 parent fad2b47 commit 8b4a628

39 files changed

Lines changed: 3140 additions & 0 deletions

Python/Guess_number/Guess_number2.0(v1.1)未完待开发.py

Lines changed: 939 additions & 0 deletions
Large diffs are not rendered by default.

Python/Guess_number/README.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
```
2+
主程序: `Guess_number.py`
3+
(文件夹)`game_date`: 用来存储玩家信息的(在注册的时候就自己创建一个用户的文件到这个文件夹中,文件中存储的是用户的游戏信息)
4+
(文件夹)`root_date`: 主要原来存储管理员信息(管理员的文件,比如(管理员删除了那个玩家))
5+
`user_date.txt`: 存储玩家的登录信息(名字和密码)
6+
`user_mail.txt`: 存储玩家的信息(名字和邮箱)
7+
`root.txt`: 存储管理员的信息(名字和密码),除了root,所有管理员的信息也会存储到`user_date.txt`
8+
`root_mail.txt`: 存储管理员的信息(名字和邮箱)
9+
`date.txt`: 存储用户的登录时间`注册时间`退出时间`游戏时间`
10+
```
11+
12+
13+
必须有以上文件才能运行该程序
14+
15+
主要实现用户的登录,注册,找回密码,小游戏,管理员
16+
管理员可执行删除玩家,除root以外(root可以删除管理员),管理员自身不可删除自己,不可删除管理员也不能创建新的管理员(root都可以)
17+
玩家在注册完成的同一时间,会在`game_date`文件夹中自动会创建一个以用户名命名的文本文件,同理,创建管理员也会有一个,还会在`root_date`文件夹中创建一个同名的文本文件
18+
`date.txt`则是在用户创建~登录~玩游戏~退出游戏的时候把时间存储到在这里面
19+
管理员不可修改密码,但是管理员也可以登录成为玩家,玩家可以修改密码,管理员登录成为玩家的时候修改密码也可以在管理员登录中成功登录
20+
21+
22+
* 超级管理员(root) 账号:root 密码:root123 邮箱:[email protected]
23+
可自行更改
24+
25+
后面已经更新,运行程序可自动创建文件,超级管理员的账户和密码用户首次使用需要用户自己输入
26+
27+
<hr>
28+
2017年5月22日15:49:35 <br>
29+
<big>优</big>:<br>
30+
> 将TXT文本丢弃,将数据存储在数据库中(sqlite3)<br>
31+
> 删去和增加几个小功能.
32+
<br>
33+
<big>缺</big>:<br>
34+
> admin的删除用户功能暂未开发<br>
35+
> root的查看用户登录退出情况的功能暂未开发<br>
36+
<hr>

Python/Login/Find_password.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# -*- coding: utf-8 -*-
2+
3+
import json,getpass
4+
from registered import *
5+
6+
def Find_password():
7+
with open("find_password_date.txt",'r') as f:
8+
mail_date = json.load(f)
9+
with open("date.txt",'r') as d:
10+
user_date = json.load(d)
11+
while True:
12+
user = str(input("User: "))
13+
mail = str(input("Mail: "))
14+
if user in mail_date and mail == mail_date[user]:
15+
while True:
16+
new_password = getpass.getpass("New Password")
17+
enter_password = getpass.getpass("Enter Password: ")
18+
if new_password == enter_password:
19+
get_new_md5 = get_md5(user,new_password)
20+
user_date[user]=get_new_md5
21+
print("密码修改成功!")
22+
with open("date.txt",'w') as x:
23+
json.dump(user_date,x)
24+
break
25+
else:
26+
print("两次输入的密码不相同,请重新输入!")
27+
break
28+
else:
29+
print("用户名或错误!")
30+

Python/Login/ces.py

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
#! /uer/bin/python3.5
2+
# -*- coding: utf-8 -*-
3+
4+
5+
import hashlib,json,re,getpass
6+
7+
8+
9+
def get_md5(user,password):
10+
md5 = hashlib.md5()
11+
md5.update((user+password+"The*Sale").encode('utf-8'))
12+
return md5.hexdigest()
13+
14+
15+
mail_gesi = ["qq.com","gmail.com","163.com"]
16+
17+
18+
def register():
19+
with open("date.txt",'r') as f:
20+
user_date = json.load(f)
21+
with open("find_password_date.txt",'r') as a:
22+
find_password = json.load(a)
23+
while True:
24+
mail_list = [x for x in find_password.values()] # 获取之前用户输入过的所有邮箱
25+
user = str(input("New User: "))
26+
if user == 'q':
27+
break
28+
password = getpass.getpass("Password: ")
29+
password_chack = [i for i in password if i.isalpha()] # 判断 password 中是否有英文字母
30+
mail = str(input("Mail: "))
31+
save_md5 = get_md5(user,password) # 将用户输入的密码加密
32+
mail_split = mail.split("@")
33+
mail_re = re.findall(r"[^a-z0-9]+",mail_split[0])
34+
if user in user_date:
35+
print("'%s' 已存在,请重新输入!" % user)
36+
continue
37+
elif len(password) < 6 or password_chack == []: # 判断密码是否大于6个和是否带有英文字母
38+
print("密码太弱,请输入6位以上的并且至少有一个英文字母")
39+
elif mail in mail_list: # 判断有没有被其他用户输入过
40+
print("此邮箱已注册!")
41+
elif mail_re != [] or mail_split[-1] not in mail_gesi: # 判断邮箱格式
42+
print("请输入正确的邮箱")
43+
print("输入'q'可退出注册")
44+
else:
45+
user_date[user]=save_md5
46+
find_password[user]=mail
47+
print("'%s' 创建成功!" % user)
48+
with open("date.txt",'w') as s:
49+
json.dump(user_date,s)
50+
with open("find_password_date.txt",'w') as x:
51+
json.dump(find_password,x)
52+
break
53+
54+
55+
56+
57+
58+
def Find_password():
59+
with open("find_password_date.txt",'r') as f:
60+
mail_date = json.load(f)
61+
with open("date.txt",'r') as d:
62+
user_date = json.load(d)
63+
while True:
64+
user = str(input("User: "))
65+
mail = str(input("Mail: "))
66+
if user in mail_date and mail == mail_date[user]:
67+
while True:
68+
new_password = getpass.getpass("New Password")
69+
enter_password = getpass.getpass("Enter Password: ")
70+
if new_password == enter_password:
71+
get_new_md5 = get_md5(user,new_password)
72+
user_date[user]=get_new_md5
73+
print("密码修改成功!")
74+
with open("date.txt",'w') as x:
75+
json.dump(user_date,x)
76+
break
77+
else:
78+
print("两次输入的密码不相同,请重新输入!")
79+
break
80+
else:
81+
print("用户名或错误!")
82+
83+
84+
85+
86+
while True:
87+
print("User Login!")
88+
with open("date.txt","r") as f:
89+
user_date = json.load(f)
90+
user = str(input("User Name: "))
91+
password = getpass.getpass("Password: ")
92+
save_md5 = get_md5(user,password)
93+
if user not in user_date:
94+
print("用户名: '%s' 不存在,请注册!" % user)
95+
print("输入'q'退出,输入'a'继续注册")
96+
sele = str(input("q or a: "))
97+
if sele == "q":
98+
print("已退出!")
99+
break
100+
print("REGISTERED!")
101+
register()
102+
else:
103+
if user in user_date and user_date[user]==save_md5:
104+
print("Login success!")
105+
print("Welcome %s" % user)
106+
break
107+
else:
108+
print("密码或帐号错误,是否需要找回密码?(y/n)")
109+
enter = str(input(">>> "))
110+
if enter == "Y" or enter == "y":
111+
Find_password()
112+
else:
113+
continue

Python/Login/date.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"Crazy": "6eb3d8bc65eee44b7a317aaa65fd5f1e", "root": "63a9f0ea7bb98050796b649e85481845"}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"Crazy": "[email protected]", "root": "[email protected]"}

Python/Login/login.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# -*- codint: utf-8 -*-
2+
3+
import json,getpass
4+
from registered import *
5+
from Find_password import *
6+
7+
8+
9+
10+
while True:
11+
print("User Login!")
12+
with open("date.txt","r") as f:
13+
user_date = json.load(f)
14+
user = str(input("User Name: "))
15+
password = getpass.getpass("Password: ")
16+
save_md5 = get_md5(user,password)
17+
if user not in user_date:
18+
print("用户名: '%s' 不存在,请注册!" % user)
19+
print("输入'q'退出,输入'a'继续注册")
20+
sele = str(input("q or a: "))
21+
if sele == "q":
22+
print("已退出!")
23+
break
24+
print("REGISTERED!")
25+
register()
26+
else:
27+
if user in user_date and user_date[user]==save_md5:
28+
print("Login success!")
29+
print("Welcome %s" % user)
30+
break
31+
else:
32+
print("密码或帐号错误,是否需要找回密码?(y/n)")
33+
enter = str(input(">>> "))
34+
if enter == "Y" or enter == "y":
35+
Find_password()
36+
else:
37+
continue

Python/Login/registered.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#! /uer/bin/python3.5
2+
# -*- coding: utf-8 -*-
3+
4+
5+
import hashlib,json,re,getpass
6+
7+
8+
9+
def get_md5(user,password):
10+
md5 = hashlib.md5()
11+
md5.update((user+password+"The*Sale").encode('utf-8'))
12+
return md5.hexdigest()
13+
14+
15+
mail_gesi = ["qq.com","gmail.com","163.com"]
16+
17+
18+
def register():
19+
with open("date.txt",'r') as f:
20+
user_date = json.load(f)
21+
with open("find_password_date.txt",'r') as a:
22+
find_password = json.load(a)
23+
while True:
24+
mail_list = [x for x in find_password.values()] # 获取之前用户输入过的所有邮箱
25+
user = str(input("New User: "))
26+
if user == 'q':
27+
break
28+
password = getpass.getpass("Password: ")
29+
password_chack = [i for i in password if i.isalpha()] # 判断 password 中是否有英文字母
30+
mail = str(input("Mail: "))
31+
save_md5 = get_md5(user,password) # 将用户输入的密码加密
32+
mail_split = mail.split("@")
33+
mail_re = re.findall(r"[^a-z0-9]+",mail_split[0])
34+
if user in user_date:
35+
print("'%s' 已存在,请重新输入!" % user)
36+
continue
37+
elif len(password) < 6 or password_chack == []: # 判断密码是否大于6个和是否带有英文字母
38+
print("密码太弱,请输入6位以上的并且至少有一个英文字母")
39+
elif mail in mail_list: # 判断有没有被其他用户输入过
40+
print("此邮箱已注册!")
41+
elif mail_re != [] or mail_split[-1] not in mail_gesi: # 判断邮箱格式
42+
print("请输入正确的邮箱")
43+
print("输入'q'可退出注册")
44+
else:
45+
user_date[user]=save_md5
46+
find_password[user]=mail
47+
print("'%s' 创建成功!" % user)
48+
with open("date.txt",'w') as s:
49+
json.dump(user_date,s)
50+
with open("find_password_date.txt",'w') as x:
51+
json.dump(find_password,x)
52+
break
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import socket
2+
3+
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
4+
s.connect(("www.sina.com.cn",80))
5+
s.send(b'GET / HTTP/1.1\r\nHost: www.sina.com.cn\r\nConnection: close\r\n\r\n')
6+
buffer = []
7+
8+
while True:
9+
d = s.recv(1024)
10+
if d:
11+
buffer.append(d)
12+
else:
13+
break
14+
15+
date = b''.join(buffer)
16+
header, html = date.split(b'\r\n\r\n', 1)
17+
print(header.decode('utf-8'))
18+
# 把接收的数据写入文件:
19+
with open('sina.html', 'wb') as f:
20+
f.write(html)
21+
s.close()
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# -*- coding: utf-8 -*-
2+
3+
4+
def huishu():
5+
i = int(input(">>> "))
6+
s = list(filter(lambda n:int(str(n)[::-1])==n,range(1,i+100)))
7+
8+
if i in s:
9+
f = str(i)
10+
if len(f) <= 3:
11+
print(f[:-1],"+",f[len(f)//2:])
12+
else:
13+
print(f[:len(f)//2],"+",f[len(f)//2:])
14+
print(i,"是回数")
15+
else:
16+
print(i,"不是回数")
17+
18+
19+
huishu()

0 commit comments

Comments
 (0)