zoukankan      html  css  js  c++  java
  • Python学习笔记 第九天

    1.上次内容回顾

       1.1 文件操作

               1.1.1 文件获取(获得句柄)

                          f = open("文件名",mode = '',encoding = '')

                         mode = '文件打开方式‘

                         r w r+ w+ a+ rb wb ab r+b w+b a+b

                         最常见: r+ b+

                         encoding = ''文件编码

                         常见文件编码请自行百度

                         f = open('..')(返回上一层)

                         f = open('D:....')(文件的绝对路径)

                       注意:如果用'b'open,open句柄,不要写encoding

             1.1.2 光标

                       seek()

                      seek(0,0)-->seek(0) 光标在开头

                      seek(0,2)-->seek(2) 光标在结尾

                     tell() 报告当前光标位置

                     truncate() 截断文件,保留前者,清空后者

                                  无返回值

                       deeping-bug

              1.1.3 文件格式整理

                       1.1.3.1 去空格

                                 strip() 去掉空格

                                ( )换行

                      1.1.3.2 读取

                                readline()

                               readlings()-->容易溢出导致内存爆炸

                             *解决内存问题:循环读取

                              for line in f:

                     1.1.3.3 with操作

                              with 文件操作句柄 1 as f1,

                              文件句柄 2 as f2:

                             其余文件在with结构下写

           1.1.4 os 系统操作

                            replace():替换操作

                           os.remove():删除操作

                           os.rename():重命名操作

    2.今日所学内容

        2.1 函数

              2.1.1 函数:对代码块的封装与定义

                         先定义-->后调用

             2.2.2 定义函数

                      def 函数名 (传入参数):

                     函数体<-->代码块

                     注意:根据实际情况自行决定是否传参,

                               若为空,默认不传参

             2.2.3 调用函数

                                 直接使用函数名调用函数即可

                      注意:如定义的函数需要传递参数,注意传参

              2.2.4 return

                              1.结束函数,后面的函数或者代码块不再继续执行,相当于break

                              2.可以返回一个或者多个值,返回单个值默认以对应类型串形式输出,

                                 返回多个值默认以元组形式输出,但可以使用解包使其返回对应类型

                              3.若不写return 或者return后没有内容,默认返回None

                              4. 若return返回的是一个表达式,那么边先计算表达式然后再返回对应类型的计算结果

             2.2.5 函数参数&函数的传参

                      2.2.5.1 定义

                                 函数在调用是制定具体的变量的值,便是参数

                     2.2.5.2 函数的调用者:实参,形参

                                2.2.5.2.1 实参:

                                          是调用函数时传递给函数的信息,调用时将信息传递给函数的形参;写在调用函数时,形参相应的位置,实际执行时为函数传递具体内容

                               2.2.5.2.2 形参:

                                         写在函数声明处位置的变量,形式上是一个完整的参数;函数完成其工作所需要的一项信息。

                              2.2.5.2.3 传参:

                                         将实际参数传递给形式参数的过程。

                             2.2.5.2.4 实参的类型:

                                        位置参数 默认参数 动态参数 仅限关键字参数

                                   2.2.5.2.4.1 位置参数

                                             位置参数,又称形式参数,是必传参数,如果不填入,调用时会出错,

                                     给参数一个提醒类型:调用时可以传入不同类型的参数,不受影响。

    # 1. 位置参数。: 从左至右,按照顺序,一一对应
    def meet(sex,age,job,):
        print('左划一下')
        print('右划一下')
        print(f'寻找性别{sex},年龄{age}岁,{job}')
        print('聊天')
        print('约吗')
        print('约....')
    meet('','18~25','讲师')
                                   2.2.5.2.4.2 默认参数

                                             形如xxx=xxx的格式,是非必传参数,如果调用时不填,就使用定义时的默认值。

                                    调用时填,就使用填的值。

    # open('文件的改',encoding='utf-8')
    def meet(age,job,sex=''):
        print('左划一下')
        print('右划一下')
        print(f'寻找性别{sex},年龄{age}岁,{job}')
        print('聊天')
        print('约吗')
        print('约....')
    # meet('18~25','幼师')
    # 更改默认参数
    # meet('18~25','幼师',sex='laddy_boy')
    meet('18~25','幼师','laddy_boy')
                                   2.2.5.2.4.3 动态参数

                                                是非必传参数,使用参数名前面加一个星号表示,它把传入的元素都存到一个元组里。

                                        不限制传入参数的个数。适用于用在参数比较多的时候,通常使用args作为参数名。

    def func(*args,**kwargs):  # 函数的定义:*将实参角度的所有的位置参数聚合成一个元组给了args **将实参#角度的所有的关键字参数聚合成一个字典给了kwargs 聚合。
        pass
    func(*[1,2,3],**{'name': 'alex'})  # 函数的执行:* ** 打散。
                                  2.5.2.4.4 仅限关键字参数

                                                 是非必传参数,使用参数名前面加两个星号表示,不限制传参个数,它是把传入的参数

                                         保存在一个字典里,如果传参,必须要传位置参数这种xx=xx的格式,否则报错。

                                                 通常使用kwargs当做变量名。

    def meet(sex,age,job,hight,weight,):
        print('左划一下')
        print('右划一下')
        print(f'寻找性别{sex},年龄{age}岁,身高{hight},体重{weight},工作{job}')
        print('聊天')
        print('约吗')
        print('约....')
    
    # meet(sex='女',job='学生',weight=120,hight=170,age='18~25')
                           2.2.5.2.5 参数的组合使用

                                                如果一个函数中必须要使用四种参数的两种及以上,那么一定要按照顺序写参数:

                                             (1)位置参数(2)默认值参数(3)可变参数(4)关键字参数

    # def meet(sex,age,job,hight,weight,):
    #     print('左划一下')
    #     print('右划一下')
    #     print(f'寻找性别{sex},年龄{age}岁,身高{hight},体重{weight},工作{job}')
    #     print('聊天')
    #     print('约吗')
    #     print('约....')
    #
    # meet('男',222,'IT python',weight=120,hight=175,)

                     

                     2.2.5.3 三元运算符

                                三元运算又称三目运算,是对简单的条件语句(仅限于简单的判断,复杂不适用)的简写,如:

                简单条件语句

    class Teacher():
    def __init__(self,name,age):
    self.name = name
    self.age = age

    def compare(teacher1,teacher2):
    if teacher1.age > teacher2.age:
    return teacher1.name
    elif teacher1.age == teacher2.age:
    return '一样大'
    else :
    return teacher2.name
    t1 = Teacher(input("请输入一号老师的姓名:"),int(input('请输入一号老师的年龄:')))
    t2 = Teacher(input("请输入二号老师的姓名:"),int(input('请输入二号老师的年龄:')))
    print(compare(t1,t2))

               改成三元运算:

    result = teacher1.name if teacher1.age > teacher2.age else teacher2.name
    return result

    注:此三元运算表达式逻辑上不严谨,还请读者自行找出错误并加以改正

  • 相关阅读:
    汉诺塔
    美丽联合2018前端
    游览器
    python多线程实现
    cuda toolkit
    编译器,解释器及混合编译
    大疆无人机
    SaaS PaaS IaaS mes
    CNN中权值共享的理解
    最近动作项目心得
  • 原文地址:https://www.cnblogs.com/tjlhappyboy/p/11225973.html
Copyright © 2011-2022 走看看