zoukankan      html  css  js  c++  java
  • python 基础(文件操作,注册,以及函数)

    1,文件操作

      1,文件路径:

      2,编码方式:utf-8, gbk....

      3,操作方式:只读,只写,追加,读写,写读

              1,只读 :r   rb   不用编码,以什么形式存储就以什么形式读出来

          f = open('  文件名',mode = 'r',encoding = 'utf-8')

          content = f.read()

          print(content)

          f.close()  必须存在

        2,只写:w     没有此文件就会创建,先将源文件的内容全部清除,再写    wb不用编码

        3,追加:a

        4,读写:r+  打开文件直接写和读完再写不一样

           r+b  读写以byte类型

          f = open('log',mode='r+b')

          print(f.read())

          f.write('大猛','小猛'.encode('utf-8'))

          f.close()


         
    f = open('log',mode='a+',encoding='utf-8')
         f.write('时倾')
         count = f.tell()
         f.seek(count-9) 调光标
         print(f.read())
         f.close()

        
    功能详解:
         f = open('log',mode='r+',encoding='utf-8')
         content=f.read(3) #读出来的都是字符
         f.seek(3) #是按照字节定光标的位置
         f.tell() 告诉你光标的位置
         print(f.tell())
         content = f.read()
         print(content)
         f.close()
       5,光标---文件指针
         seek -- 指定光标移动到某个位置
         tell -- 获取光标当前位置
         truncate -- 获取文件
       6,open() 调用系统命名
         replace()替换
         import os
          os.remove() 删除文件
          os.rename() 重命名文件

       7,其他操作
         
    f.readable() #是否可读
    line = f.readline() ###一行一行的读
    line = f.raedlines() ###每一行当成列表中的一个元素,添加到list中
    l1 = f.truncate() #对源文件进行截取
         with open('log',mode='r+',encoding='utf-8') as obj:
           print(obj.read()) ##自动关闭,不用写close,可以同时打开多个文件
    2,注册
    username = input('请输入你要注册的用户名:')
    password = input('请输入你要注册的密码:')
    with open('list_of_info',mode='w',encoding='utf-8') as f:
        f.write('{}
    {}'.format(username,password))
    print('恭喜你,注册成功')
    lis = []
    i = 0
    while i < 3:
        uname = input('请输入你的用户名:')
        pword = input('请输入你的密码:')
        with open('list_of_info', mode='r+', encoding='utf-8') as f1:
            for line in f1:
                lis.append(line)
        if uname == lis[0].strip() and pword == lis[1].strip():
            print('登陆成功')
            break
        else:print('账号和密码错误')
        print(lis)
        i += 1
    
    
    

       3,函数----定义之后,可以在任何需要的地方调用,没有返回值,只是单纯的打印(只定义不调用就一定不执行,先定义后调用)

       1,def  函数名(): 自定定义函数只需要0个参数,接收参数,形参

         函数体

         返回值  =  函数名   

       ret = 函数名()  传递参数:传参  实参

       2,返回值    

         1).没有返回值----返回None
    不写return:函数内代码执行完毕后自动结束
    只写return:结束一个函数
    return None----不常用
    return之后都不执行

    2).返回一个值
    可以返回任何数据类型
    只要返回就可以接受到
    如果在一个程序中有多个return,只执行第一个
    3).返回多个值
    多个返回值用多个变量接收:有多少个返回值就用多少变量接收
    用一个变量接收,中间用逗号隔开,得到的是一个元祖
      
    3,参数
           没有参数
    定义函数和调用函数时括号里都不写内容
    有一个参数
    传什么是什么
    有多个参数
    位置参数
      4,站在不同角度看参数
           站在实参的角度上:调用函数的时候(给一个序列加上*,就是将这序列按照序列打散)
           按照位置传参
           按照关键字传参
           混着用可以,但是必须先按照位置传参,再按照关键字传参
           不能给同一个变量传多个值
        站在形参角度上:定义函数的时候(给变量加上*,就是组合所有传来的值)
        位置参数:必须传,且有几个参数传几个值
           *args:动态参数,可以接受任意多个按位置传入的参数

        默认参数:可以不传,如果不传就是默认的参数,传了就覆盖
           **kwargs:动态参数,可以接受任意多个按照关键字传入的参数
       5,参数值
        1)只有调用函数的时候
            按照位置传参:直接写参数的值
            按照关键字: 关键字 = 值
        2)定义函数的时候
         位置参数:直接定义参数 必须传
         默认参数:关键字参数:参数名 = '默认的值'
         动态参数:有可以接受任意多个参数
      在参数名之前加*,习惯参数名args,接收的是按照位置传参的值,组成一个元祖
      参数名之前加**,习惯参数名kwargs,接收的是按照关键字传参的值,组成一个字典
      顺序:必须先定义位置参数,*args,后定义默认参数,**kwargs
      6,函数的注释
        def func():
          这个函数实现了什么功能
          参数1:
          参数2:

          :return: 是字符串或者是列表的长度


     
     

        

  • 相关阅读:
    <Redis> 入门六 主从复制方式的集群
    <Redis> 入门五 持久化RBD/AOF
    <Redis> 入门四 Jedis操作Redis
    <Redis> 入门三 事务
    <Redis> 入门X 分布式锁
    <Redis> 入门二 五种数据类型的操作、通用key的操作、发布订阅
    <Redis> 入门一 概念安装
    <Linux> 下安装和卸载JDK
    <ActiveMQ>
    <linux>入门
  • 原文地址:https://www.cnblogs.com/encounter-you/p/10502705.html
Copyright © 2011-2022 走看看