zoukankan      html  css  js  c++  java
  • 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+'
    ')
    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+' ')
    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('文件不存在')

  • 相关阅读:
    kvm
    Javascript 笔记与总结(2-7)对象
    [Swift]LeetCode172. 阶乘后的零 | Factorial Trailing Zeroes
    Swift5.3 语言指南(五) 基本运算符
    C#6.0语言规范(一) 介绍
    [Swift]LeetCode171. Excel表列序号 | Excel Sheet Column Number
    [Swift]LeetCode169. 求众数 | Majority Element
    [Swift]LeetCode168. Excel表列名称 | Excel Sheet Column Title
    [Swift]LeetCode167. 两数之和 II
    [Java]LeetCode141. 环形链表 | Linked List Cycle
  • 原文地址:https://www.cnblogs.com/MLing/p/6965339.html
Copyright © 2011-2022 走看看