python中的小知识点
1、想要获取当前时间需要使用time
import time #引用time方法
Now_time = time.strftime('%Y-%m-%d %H:%M:%S') #输出当前的时间,格式是固定的,输入结果为2017-06-08 21:21:33
2、在文件写入的时候,想在文件中加入空格或者换行的话,格式如下:
其中Now_time是定义的变量、nathing是函数中传入的参数,是可以加引号的,他们之间使用+号进行连接
fl.write(Now_time+' '+nathing+'\n')
3、当将文件中的内容换为字典了之后,密码怎么判断跟输入的用户是不是一致
当件中字典的存放格式如下:
因为每个key有两个值,并且又放在一个字典里,其中passwd是第二个字典里的key,所以查找时可继续使用字典取值的方式,注意要加引号,因为字典中的key是字符串,不加引号的话会作为变量进行查找了
{'luoluo': {'money': 5435, 'passwd': 234567}, 'admin': {'money': '12.12', 'passwd': '123456'}}
pwd == str(user_dic[username]['passwd'])
4、添加商品中判断价格为小数的情况,以下是判断为数字和小数的情况,其中包括正小数和负小数:---牛牛大神的杰作喔
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
def is_float(s):
s = str(s)
if s.count('.')==1:#判断小数点个数
sl = s.split('.')#按照小数点进行分割
left = sl[0]#小数点前面的
right = sl[1]#小数点后面的
if left.startswith('-') and left.count('-')==1 and right.isdigit():
lleft = left.split('-')[1]#按照-分割,然后取负号后面的数字
if lleft.isdigit():
return True
elif left.isdigit() and right.isdigit():
#判断是否为正小数
return True
return False
print(is_float('-98.9'))
|
5、文集以字典形式存储,删除文件内容的时候,需要先将指针移到最前面,并且清空之后才可以,再写入
if p_name in products_dic: #products_dic是存放产品的字典
products_dic.pop(p_name) #删除一个商品,现在的字典是更新的最新的
fp.seek(0) #将指针移到最前面
fp.truncate() #清空文件里的所有内容
fp.write(str(products_dic)) #将更新的最新的字典写到文件里
print('删除商品成功')
6、函数与函数之间是怎么处理的
如果函数没有传参的话,函数一定要有返回值,返回True或者False,在使用的时候,可以作为条件进行判断
如果函数有传参的数,那么其他函数使用的时候,可以直接调用函数,根据需要传入参数
eg:没有传参的话,有返回值
def login():
with open('users.txt') as fr:
fr.seek(0)
user_str = fr.read()
user_dic = eval(user_str)
if username in user_dic:
if pwd == str(user_dic[username]['passwd']):
print("恭喜您登陆成功!")
log("恭喜%s登陆成功!"%username)
return True
else:
print("输入的密码有误!")
return False
else:
print("您输入的用户名不存在")
return False
eg:通过传入的参数,执行函数
import time
def log(nathing):
fl=open('log.txt', 'a+')
Now_time = time.strftime('%Y-%m-%d %H:%M:%S')
fl.write(Now_time+' '+nathing+'\n')
log("商品%s删除成功!" % p_name)#调用时
7、通过字典,可以更便捷的调用多个函数
choice = input('1添加商品,2删除商品,3查询商品,4用户管理,5退出,请输入你的选择:').strip()
def hh():
print('修改商品...')
def cc():
print('添加商品...')
def query():
print('查询商品。。。')
def delete():
print('删除商品。。。')
menu = {'1': hh,'2': cc,'3': query,'4': delete}
if choice in menu:
menu[choice]()
else:
print('请输入1-5之间的值!')
8、判断文件内容是不是空的:
choice = input('1添加商品,2查询商品,3退出,请输入你的选择:').strip()
fp = open('products.txt', 'a+')
fp.seek(0)
products_str = fp.read()
# 这个是从文件里面读出来商品信息,是字符串
if len(products_str):
# 这里是判断文件内容是否为空的,如果不为空的话,长度就大于0,就是真
# 一旦走这就说明是有产品
products_dic = eval(products_str)
# 是把读出来商品信息转成字典
else:
# 走这里就说明是没有商品信息的
products_dic = {} # 存放所有的商品
9、获取执行时输入的内容,并判断文件是否存在
#运行的时候要 python xxx.py hh.txt hehe haha
import sys,os
inputs = sys.argv
# #存的是所有运行时候传进来的参数
# #它就是用来获取在用python命令运行python文件的时候,传入的参数
#1、判断用户输入的是不是够个数
if len(inputs)<4:
print('参数不够,至少需要3个参数,e.g: python xx.py xx.txt old_str new_str..')
else:
file_name = inputs[1]
old_str = inputs[2]
new_str = inputs[3]
new_file_name = file_name+'.new'
if os.path.exists(file_name):#用它来判断文件是否存在
with open(file_name,encoding='gbk') as fr,open(new_file_name,'w') as fw:
for line in fr:
res = line.replace(old_str,new_str)#替换之后的内容
fw.write(res)
os.remove(file_name)
os.rename(new_file_name,file_name)
else:
print('文件不存在')