zoukankan      html  css  js  c++  java
  • python3 第三天

    一、文件操作
    = open("file.txt",'r'
    print(len(f.read()))     #文件总长度 
    print(f.tell())          #读完文件,文件指针位置
    f.seek(0,0)              #偏移回文件头 
    print(f.readline())      #打印出文件中一行(第一行) 
    print f.tell()           #显示文件指针现在的位置 
    f.seek(2,1)              #从当前文件指针(向后)偏移2个字节 
    print(f.readline())      #再打印一行(应该少2个字节) 
    print(f.tell())          #显示 现在 的指针位置 
    f.seek(-7,1)             #从当前位置向前偏移7个字节 
    print(f.readline())      #打印下一行 
    print(f.tell())          #显示 现在 的指针位置 
    f.seek(-9,2)             #从尾部向前偏移9个字符 
    print(f.tell())          #显示 现在 的指针位置 
    print(f.readline())      #打印出内容 
    f.seek(0)  #==>默认是0 等等seek(0,0) 
    f.seek(80)      #等同上面的seek(-9,2) 从尾部向前取 
     
    二、函数
     
    形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量
    实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值
    def stu_register(name, age, country, course):
        print("----注册学生信息------")
        print("姓名:", name)
        print("age:", age)
        print("国籍:", country)
        print("课程:", course)
     
     
    stu_register("王山炮", 22, "CN", "python_devops")
    stu_register("张叫春", 21, "CN", "linux")
    stu_register("刘老根", 25, "CN", "linux")
    非固定参数
     
    若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数
     
    def stu_register(name, age, *args):  # *args 会把多传入的参数变成一个元组形式    print(name, age, args)
    stu_register("Alex", 22)
    stu_register("Jack", 32, "CN", "Python”)
     
    还可以有一个**kwargs
    def stu_register(name, age, *args, **kwargs):  # *kwargs 会把多传入的参数变成一个dict形式    print(name, age, args, kwargs)
     
    stu_register("Alex", 22)
     
    stu_register("Jack", 32, "CN", "Python", sex="Male", province="ShanDong")
     

    1、普通调用

    与其他语言中函数调用一样,Python中在调用函数时,需要给定和形参相同个数的实参并按顺序一一对应。

    def fun(name, age, gender)

           XXXX

    调用:fun('Jack', 20, 'man') 

    2、使用关键字参数调用函数

    函数也可以通过keyword=value 形式的关键字参数来调用,因为我们明确指出了对应关系,所以参数的顺序也就无关紧要了。

    def fun(name, age, gender): 
      XXXXX
      
    调用:fun(gender='man', name='Jack', age=20
     

    3、调用具有默认实参的函数

    Python中的函数也可以给一个或多个参数指定默认值,这样在调用时可以选择性地省略该参数:

    def fun(a, b, c=100): 
      print(a,b,c) 
      
    调用:fun(1,2
    调用:fun(1,2,3)

    注意:通常情况下默认值只被计算一次,但如果默认值是一个可变对象时会有所不同, 如列表, 字典, 或大多类的对象时。例如,下面的函数在随后的调用中会累积参数值:

    def fun(a, L=[]): 
      L.append(a) 
      print(L) 
      
    调用:fun(1# 输出[1] 
         fun(2# 输出[1, 2] 
         fun(3# 输出[1, 2, 3]

    4、调用可变参数函数

    通过在形参前加一个星号(*)或两个星号(**)来指定函数可以接收任意数量的实参。

    def fun(*args): 
      print(type(args)) 
      print(args) 
      
    调用:fun(1,2,3,4,5,6
      
    # 输出: 
    <class 'tuple'> 
    (1, 2, 3, 4, 5, 6) 
     
    def fun(**args): 
      print(type(args)) 
      print(args) 
      
    调用:fun(a=1,b=2,c=3,d=4,e=5
      
    # 输出: 
    <class 'dict'> 
    {'d': 4, 'e': 5, 'b': 2, 'c': 3, 'a': 1}
     
     

    从两个示例的输出可以看出:当参数形如*args时,传递给函数的任意个实参会按位置被包装进一个元组(tuple);当参数形如**args时,传递给函数的任意个key=value实参会被包装进一个字典(dict)。

    5、通过解包参数调用函数

    上一点说到传递任意数量的实参时会将它们打包进一个元组或字典,当然有打包也就有解包(unpacking)。通过 单星号和双星号对List、Tuple和Dictionary进行解包:

     def fun(a=1, b=2, c=3): 

            print(a+b+c)

    调用:fun()  # 正常调用 
         list1 = [112233
         dict1 = {'a':40'b':50'c':60
         fun(*list1)  # 解包列表 
         fun(**dict1) # 解包字典 
      
    #输出:
    6
    66
    150
     
     
    三、.返回值
    要想获取函数的执行结果,就可以用return语句把结果返回
     
    注意:
     
    1. 函数在执行过程中只要遇到return语句,就会停止执行并返回结果
    2. 如果未在函数中指定return,那这个函数的返回值为None

    四、.内置函数


     
  • 相关阅读:
    JavaScript对原始数据类型的拆装箱操作
    Javascript继承(原始写法,非es6 class)
    动态作用域与词法作用域
    自行车的保养
    探索JS引擎工作原理 (转)
    C语言提高 (7) 第七天 回调函数 预处理函数DEBUG 动态链接库
    C语言提高 (6) 第六天 文件(续) 链表的操作
    C语言提高 (5) 第五天 结构体,结构体对齐 文件
    C语言提高 (4) 第四天 数组与数组作为参数时的数组指针
    C语言提高 (3) 第三天 二级指针的三种模型 栈上指针数组、栈上二维数组、堆上开辟空间
  • 原文地址:https://www.cnblogs.com/jnbb/p/7216911.html
Copyright © 2011-2022 走看看