学习python
最近因为假期,项目也没有那么忙,就尝试学py感觉人年轻了十岁
为什么那么说,你尝试一下写代码都是复制粘贴两三年后,一年你自己写的代码不超过一百行。突然有一天你一天就写了几百行垃圾代码你也很兴奋
废话不多说。先说说今天的感觉
今天也算是第一次打py的代码。感觉和以前写的很不一样为什么?
先说第一个 变量的编写
我们知道像java .net c这些语言都是要定义字符类型的
1、变量定义
一个int你要这样定义
int i = 1;
而py就不需要直接就是干
i = 1
就连分号都不用写.net php这些代码习惯的我一开始完全不适应过来
2、字符拼接
这里不啰嗦直接放代码。。今天第一天写文章因为后面还有事情要做。。突然不想写下去了。但是为了硬性要求自己有这个习惯写下去吧。但是就不啰嗦了放代码
py的拼接代码有下面三种格式。别问我什么因为我也不知道 今天刚学以后可能就知道了 这个写法和以前写的语言写法是不是不一样?
username=input("username")
age=int(input("age"))
job=input("job");
info = '''
Name:%s
age:%d
job:%s
'''%(username,age,job)
info1='''
Name:{0}
age:{1}
job:{2}
'''.format(username,age,job)
info2='''
Name:{_name}
age:{_age}
job:{_job}
'''.format(_name=username,_age=age,_job=job)
3 流程控制分支语句
不说什么,至少我目前接触的语言代码都是这样写if语句的
if(){
}
而py呢就这样
if 表达式 :
处理的事务
是不是感觉完全不一样。。但是我还是可以接受的啦。。多写几遍就会了
4 、作业
后面跟着教程做有一个学习任务。学习任务是这样的
4.1写一个登录
4.2允许用户输入三次
4.3 用户输入三次错误直接锁定
我先放我一开始设想的导图。。有点不完成。但是有一个大概(说白了就是我不耐烦,没有耐性)
上面应该能看懂大概的
为什么我这样设计呢。
这个因为要登录就必须要账号密码,要账号密码就必须要读取。今天看的章节没有说数据库什么的。但是我看了应该是定义一个用变量给登录使用然后用户输入和定义的变量匹配吧。
但是我不是这样想的。
我是想既然没有数据库 那么我就存在文件吧。直接存json格式的
这里我看到的教程也没有说到,纯属是我个人去想的,最后还真有这个。
下面就直接进入做的阶段了
进入系统
用户看到提示 有三个选项 1 进入登录 2 进入注册 3 退出
我们必须要注册才能登录对吧。。所以我们选择2
根据if判断 是2的为执行以下操作
username = input('username:')//先等定义用户输入的名称
password = input('password:')//定义用户密码
print(username, password)//这个可以当成我拿来验证是否有值的,个人习惯当是调试吧
test_dict = {'name': username, 'password': password} //我把这个当成一个数组到时候存入json文件的不知道py有没有数组哈哈
# dumps 将数据转换成字符串
json_str = json.dumps(test_dict)
new_dict = json.loads(json_str)
with open("{0}.json".format(username), "w") as f:
json.dump(new_dict, f)//这里就是文件写入 文件名字是根据注册的用户名命名的。为什么这样做?因为我考虑到了后面用户登录直接根据这个文件判断有没有注册这个用户就针对这个文件查找个人信息,。。个人理解不懂就算。其实这样写很耗费资源但是我目前只想完成功能 效率问题不考虑。最好的就是所有用户都存在一个文件里面,然后每个用户都在同一个文件里面读取。这个跟数据的表一样。但是我没做。因为我懒
上面说了注册的功能。
那么我们进入登录
username = input('输入用户名:')
password = input('输入密码:')
file = []
s = []
# 判断是否有这个用户注册
# 前面注册的时候我们说了注册用户会根据用户的名字生成一个文件。那么我们登录用户输入账号密码。我们第一步要做的就是检测
# 这个用户存不存在。。存不存在的依据就是有没有这个文件 所以这个{0}.json 就z是文件名字我们尝试找这个文件在不在。这个方法我百度出来的
if os.access("{0}.json".format(username), os.F_OK):
file = open("{0}.json".format(username), 'r', encoding='utf-8')#查找这个文件根据这个文件名 username就是用户输入的
s =json.load(file)#存起来后面会使用
else: # 没有返回
print("没有这个账号")
break
# 判断当前的用户输入token是否存在。。存在就是已经被关闭
if os.access("{0}Token.json".format(username), os.F_OK):
print("账号已经被锁定")
# 以上可能都不存在的话执行下面操作
else:
if s['password'] == password:
print("登录成功")
break
else:
if s['name'] == username:
count = count - token
if count != 0:
print("你还有{0}次机会".format(count))
print("根据你的需求选择输入1进入登录输入2进入注册输入3不操作")
elif count==0:
print(count)
test_dict = {'token': username}
# dumps 将数据转换成字符串
json_str = json.dumps(test_dict)
new_dict = json.loads(json_str)
with open("{0}Token.json".format(username), "w") as f:
json.dump(new_dict, f)
print("你已经输入三次账号密码错误被冻结")
break
else:
print("账号不存在回去注册")
算了不写了。就到这个里。。基本上每个部分我都写了注释看不懂我也没办法
下面给我整个的代码
import json
import os
print("根据你的需求选择输入1进入登录输入2进入注册输入3不操作")
token = 0
count = 3
while True:
token =+1
choose = int(input("请输入选项:"))
if choose == 1:
username = input('输入用户名:')
password = input('输入密码:')
file = []
s = []
# 判断是否有这个用户注册
# 前面注册的时候我们说了注册用户会根据用户的名字生成一个文件。那么我们登录用户输入账号密码。我们第一步要做的就是检测
# 这个用户存不存在。。存不存在的依据就是有没有这个文件 所以这个{0}.json 就z是文件名字我们尝试找这个文件在不在。这个方法我百度出来的
if os.access("{0}.json".format(username), os.F_OK):
file = open("{0}.json".format(username), 'r', encoding='utf-8')#查找这个文件根据这个文件名 username就是用户输入的
s =json.load(file)#存起来后面会使用
else: # 没有返回
print("没有这个账号")
break
# 判断当前的用户输入token是否存在。。存在就是已经被关闭
if os.access("{0}Token.json".format(username), os.F_OK):
print("账号已经被锁定")
# 以上可能都不存在的话执行下面操作
else:
if s['password'] == password:
print("登录成功")
break
else:
if s['name'] == username:
count = count - token
if count != 0:
print("你还有{0}次机会".format(count))
print("根据你的需求选择输入1进入登录输入2进入注册输入3不操作")
elif count==0:
print(count)
test_dict = {'token': username}
# dumps 将数据转换成字符串
json_str = json.dumps(test_dict)
new_dict = json.loads(json_str)
with open("{0}Token.json".format(username), "w") as f:
json.dump(new_dict, f)
print("你已经输入三次账号密码错误被冻结")
break
else:
print("账号不存在回去注册")
elif choose == 2:
username = input('username:')
password = input('password:')
print(username, password)
test_dict = {'name': username, 'password': password}
# dumps 将数据转换成字符串
json_str = json.dumps(test_dict)
new_dict = json.loads(json_str)
with open("{0}.json".format(username), "w") as f:
json.dump(new_dict, f)
print("注册成功...")
else:
print("大了")
else:
print("下次使用")
上一篇: 利用python抓取指定格式数据并翻译