zoukankan      html  css  js  c++  java
  • 函数四部分和文件操作

    函数四部分:
    函数名:是使用函数的依据
    函数体:是完成功能函数的代码块
    函数返回值:是用来接收函数完成的反馈信息
    函数参数:是完成函数需要的信息
    函数定义:
    def fn(参数n):
      print(参数n)
      return 参数n
    fn(参数n)
    函数分类:函数体,返回值,参数列表
    函数体:空函数、非空函数
    函数参数:有参函数、无参函数
    返回值:空函数,空函数return、有一个返回值的return、有多个返回值的return(是以元组形式存放数据)
    函数的嵌套使用
    # # 数字比较大小:
    # # 两个数字比大小
    def max_2(n1,n2):
    if n1>n2:
    return n1
    # # 三个数字比大小
    def max_3(n1,n2,n3):
    m2=max(n1,n2,n3)
    return m2
    # # 四个数字比大小
    def max_4(n1,n2,n3,n4):
    m3=max(n1,n2,n3,n4)
    return m3
    print(max_4(50,20,90,40))
    # # 函数分类
    # # 按照函数体
    # # 空函数
    def fn():
    pass
    # # 非空函数
    def fn():
    print('雨一直下!')
    fn()

    name1=input('name1:')
    name2=input('name2:')
    def fn(name1,name2):
    print('欢迎%s和%s光临' %(name1,name2))
    # name1=input('name1:')
    # name2=input('name2:')
    fn(name1,name2)
    # # 按照参数列表
    # # 有参函数
    def fn(num):
    print('欢迎%s来到老男孩' %num)
    num=input('num:>>>')
    fn(num)
    # # 无参函数
    def fn():
    print('雨一直下,气氛不算融洽')
    fn()
    # 按照返回值
    # 没有return
    def max():
    print('好嗨哦!')
    print('气死了')
    print('你最好啦')
    max()
    # #有return
    def num():
    print('好high哦')
    print('haohoahoa')
    return #return就相当于while循环中的break
    print('wulalaala')
    num()
    # 有一个返回值的return
    def num_max(n1,n2,n3):
    if n1>n2 and n1>n3:
    return n1
    elif n1<n2 and n2>n3:
    return n2
    else:
    return n3
    res=num_max(12,23,45)
    print(res)
    # 有多个返回值的return
    def msg(n1,n2):
    r1=n1+n2
    r2=n1/n2
    r3=n1-n2
    r4=n1*n2
    return r1,r2,r3,r4
    print(msg(12,2))
    # 函数的嵌套
    def fn1():
    print('胡歌最帅!')
    fn2()
    def fn2():
    print('不,王力宏最帅!')
    fn3()
    def fn3():
    print('谁也影响不了鸣人在我心中的地位!')
    fn1()
    '''

    今日内容

    字符编码:人所能理解的语言与计算机所能理解的二进制01语言进行交流的媒介

    编码表:两种对应关系的结构(人语言与计算机语言)

    Unicode utf-8 gbk

    unicode 与utf-8 的关系

    Unicode 是2字节汉字2字节英文,占有空间相对较大,读取效率高

    utf-8中汉字是3-6给字节,英文是1个字节,一般来说编码都是用英文编写,所以utf-8相对占用空间少,读取效率低

    Unicode与utf-8采用的是同一张编码表,utf-8是Unicode的一种具体体现方式,变长存储类型,Unicode实在内存中存储,硬盘中是utf-8存储。

    utf-8变产的优点是:在大量的数据运行中,是以英文为主,所以utf-8更省空间,传输速度更快。

    字符与字节

    s1=u' unicode

    s2=b' bytes

    s3=r' 原义字符串

    编码和解码

    将u编成b print(u''ecode('utf-8'))

    将b编成u print(b''decode('utf-8'))

    ex print(u'你好‘ encode('utf-8')) u-b

    print(b'print(u'你好‘ encode('utf-8'))' decode('utf-8')) b-u 你好

    文件操作:打开文件-操作文件-关闭文件

    打开文件f=open('文件名’,‘执行read或者write',encoding='utf-8')

    操作文件:

    f.read() .......全部读取

    f.readline() ........读取一行

    f.readlines() ..........读取全部行

    文件的去重

    s=set()

    for line in f:

      print(line)

      s.add(line)

    print(s)

    关闭文件f.close()

    文件模式w

    主模式:r:读|w:写|a:追加

    从模式:b:按照字节操作|t:按照字符操作|+:可读可写

    从模式跟在主模式之后

    文件不存在会创建新文件|文件存在会先清空文件,在操作文件

    今日内容总结:

    元组tuple:可以存放多个值,是有序排列,不可变类型。

    定义:是用来记录同种属性的多个值,可以被for循环遍历。

    t=(1,) #在最底层就是t=tuple(1,)

    元组也可以存放多个类型的值,比如元组中可以存放列表

    t=(1,2,3,4,['a','s','d','f'],'abc') 然后这个类型中的列表是可变类型,列表里面的值改变,元组id不变,但其实元组本身并没有被改变



    只是改变了列表的内部值的,元组存储的id没有变化,所以元组是不可变类型。

    元组的常用方法:

    t=(1,2,'a','b',['s','1','3'],4)

    1.索引:正向取和反向取值 print(t[0]) print(t[-1])

    2.切片:由索引可以引出切片。 print(t[开始:要切长度:步长]) print(t[ : : ])

    3.长度:len计算长度 print(len(t))

    4.成员判断in 和not in 返回值是True或者False

    print(‘a' in t ) True

    print('aaa' in t) False

    5.没有增删改查

    6.可以被for循环遍历取值

    for i in t:

    print(i)

    注意:元组中的数据不可以发生改变,如果要改变元组中的数据,可以将元组转换成列表

    l=list(t)

    t=tuple(l)

    字典dict:可以存放多个不同类型的值,是可变类型,字典是按照key取值,无序

    dic={1,2,3} 在底层则是dic=dict{1,2,3}

    d=dic(a=1,b=2,c=3)

    d={}.fromekeys(k,v)

    1.字典是无序的,所以不可以索引取值,所以也没有切片,那么字典取值是按照key来取值,还有一种是get取值

    d1=dic.get(key,None) #一般来说,get后面的默认值为None,如果不写就会直接是默认值,规定默认值的话则是打印规定值

    d2=dic.get(key,'该值不存在’)

    声明:字典的key为不可变类型,一般都有int,float,str,tuple

    value 可以是任意类型的值。

    .get(k,) ..........用来取值

    .append ........用来加值

    .update........用来增加值

    .pop ..........用来删除指定值的key,删除具有返回值

    .popiteam ........用来随机删除,返回值是key:value

    .remove ..........用来移除指定元素

    del ...............通用删除 ,没有返回值

    .copy ...........用来进行复制,是一个浅copy

    .fromkeys(key,value) ...............自定义{},key可以自定义,完了以后遍历key,每个value值是一样的

    .setdefault ..........判断一个key值是否在列表中,不在就添加

    dic[k]=v d=dic(a=1,b=2)

    集合set():数据具有唯一性,可以用来去重,无序存储,无key五index,无法取值

    交集 & 。。。。。两个集合的共同元素

    并集 | 。。。。。。两个集合的所有元素

    差集 —。。。。。前面一个集合去掉与后面的集合相重合的元素,只剩只有前面的集合元素

    对称差集 ^ ..........除掉两个集合都有的共同元素,显示两个集合的元素

    .add .............添加元素

    .pop .............随即删除元素

    .remove ..........有ele的删除,没有则异常

    *******去重

    set() 本身就有去重的功能

    l=['a','b','c'] 去重 s=set(l) 已经去重,然后可以再次转换成列表 l=list(s)

    .isdisjoint ........判断是否有交集 True/False

  • 相关阅读:
    Oracle between and 边界问题
    多线程——什么是并发与并行
    js:浅拷贝和深拷贝
    JavaScript中数组元素删除的七大方法汇总
    js 去掉字符串前面的0
    chrome总是提示"喔唷,崩溃啦"的解决办法
    智慧城市管理信息系统建设项目的架构分析
    利用DenseUNet深度神经网络数之联河湖遥感大数据的研究
    无人机+数字孪生助力河长制巡查方法探讨
    防汛可视化指挥平台“一张图”技术研究
  • 原文地址:https://www.cnblogs.com/mcc61/p/10760315.html
Copyright © 2011-2022 走看看