您的位置:68399皇家赌场 > 集群主机 > python初学小结叁:文件、集合、函数、变量等

python初学小结叁:文件、集合、函数、变量等

发布时间:2019-05-12 14:27编辑:集群主机浏览(90)

    聚拢的子集

    print(list_1.issubset(list_2))

    list_1是否是list_2的子集

    python初学小结三:文件、群集、函数、变量等,

    1、文件操作:

    文件操作流程:

    1、展开文件,获得文件句柄并赋值给2个变量

    贰、通过句柄对文本进行操作

    三、关闭文件

    开荒文件的方式有:

    • r,只读格局(私下认可)。
    • w,只写情势。【不可读;不存在则创建;存在则删除内容;】
    • a,追加形式。【可读;   不存在则开创;存在则只扩展内容;】

    " " 表示能够而且读写某些文件

    • r ,可读写文件。【可读;可写;可扩充】
    • w ,写读
    • a ,同a

    "U"表示在读取时,可以将 r n rn自动转变来 n (与 r 或 r 情势同使用)

    • rU
    • r U

    "b"表示管理2进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows管理2进制文件时需标注)

    • rb
    • wb
    • ab

     

    原文件yesterday2:

     皇家赌场 1

     

    (一)读取文件

    f = open("yesterday2",'r',encoding= "utf-8")#文本句柄,'r'是读格局,不写,暗中同意是'r','w'写是创制1个文本,原来文件就没了

    data2 = f.read()

    print('------data2------n',data2)

    执行结果:

     皇家赌场 2

     

    (贰)for循环读取文件

    for i in range(3) :
       print(f.readline() )#老是读壹行,壹共读3行
    for line in f.readlines() :
        print(line.strip())  #strip()把空格与换行去掉

    运转前原来的书文件yesterday贰:

     皇家赌场 3

     

    实施结果:

     皇家赌场 4

     

    (3)写文件

    f = open("yesterday2",'w',encoding= "utf-8")

    f.write("black black heartn")#'w'写是开创1个文书,原来文件的开始和结果就没了
    f.write("why would you offer moren")
    f.write("Why would you make it easier on me to satisfy")

    试行结果:

     皇家赌场 5

     

    (4)

    f = open("yesterday2",'r',encoding= "utf-8")

    print(f.readlines() )#改为每行是叁个因素的列表['black black heartn', 'why would you offer moren', 'Why would you make it easier on me to satisfy']

    (5)

    f.readlines()只适合读小文件,因为读时先加载完1回性全读到内部存储器

    于是能够动用循环,读一行,删除壹行,内存中只保留壹行,就足以拍卖大文件了:

    count = 0

    f = open("yesterday",'r',encoding= "utf-8")

    for line in f:

        if count ==4:

            print('----------作者是分割线-------')

            count = 1

            pass

    print(line.strip())

    count =1

    f.close()

    履行结果:

     皇家赌场 6

    图(5)-1

    只顾:若上述代码中的“pass”改写成“continue”,试行结果如下:

     皇家赌场 7

    图(5)-2

    相比图(五)-一与图(伍)-二,发掘后者少了一句:“If you call your friends and nobody's home. 纵然您通话给心上人却绝非壹个人在家 ”,那是因为pass与continue的进行机制不相同,当count ==四成即刻,pass之后会奉行上面包车型大巴print(line.strip()),而continue之后,程序跳转到 if count ==4:,所以会少打印一行。

    (6)读写r

    f = open("yesterday2", 'r ', encoding="utf-8")#读写

    print(f.readline())

    print(f.readline())

    print(f.readline())

    print(f.tell())

    f.write("n-------add one line-----------n")#写在文件最终

    print(f.readline() )

    施行结果:

     皇家赌场 8

     

    原本文件产生:

     皇家赌场 9

     

    (七)二进制文件读rb

    f = open("yesterday2", 'rb')#二进制文件读

    print(f.readline() )

    print(f.readline() )

    print(f.readline() )

    实行结果:

     皇家赌场 10

     

    (8)修改文件

    """修改文件时,新确立三个文本,修改好的文件出现在新文件中"""

    f = open("yesterday2","r",encoding= "utf-8")

    f_new = open("yesterday2.bak","w",encoding= "utf-8")

     

    for line in f:

        if "经历了风口浪尖忍受了孤身1位" in line:

            line = line.replace("经历了风口浪尖忍受了1身","历经过风雨忍受过孤独")

        f_new.write(line )

    f.close()

    f_new .close()

    实行之后,新创设了八个文书yesterday二.bak:

    皇家赌场 11

     

     

    (玖)With语句:施行完后活动关闭文件

    语法:

    with open("yesterday2","r",encoding= "utf-8") as f ,

    open("yesterday2","r",encoding= "utf-8") as f2:

    python标准:一行代码不要凌驾八十个字符,故展开三个文本能够用“”写成多行

    二、进程条小程序:

    import sys ,time

    for i in range (20):

        sys.stdout.write("#")

        sys.stdout.flush()

    time.sleep(0.1)

    三、集合

    list_1 = [1,2,5,3,2,6,4,2,6]

    list_1 = set (list_1)#把列表产生集结,集结是冬季不重复的

    list_2 = set([2,5,33,22,1])

     

    print(list_1 ,list_2 )#{1, 2, 3, 4, 5, 6} {33, 2, 1, 5, 22}

    print(list_1 ,type(list_1 ))#{1, 2, 3, 4, 5, 6} <class 'set'>

     

    #交集

    print(list_1 .intersection(list_2 ))#=print(list_1 & list_2 )#{1, 2, 5}

     

    #并集

    print(list_1 .union(list_2) )#=print(list_1 | list_2 )#{1, 2, 3, 4, 5, 6, 33, 22}

     

    #差集

    print(list_1 .difference(list_2 ) )#=print(list_1 - list_2 )#{3, 4, 6}

     

    #子集

    list_3 = set([1,2,5])

    print(list_3 .issubset(list_2 ))#True

     

    #对称差集,抽取两聚集里面互相都不曾的抽取来

    print(list_1 .symmetric_difference(list_2 ) )#=list_1^list_2#{33, 3, 4, 22, 6}

     

    list_3 = set([1,2,5])

    list_4 = set([4,6,8])

    print(list_3 .isdisjoint(list_4 ) )#如果list_3与list_4尚无交集再次来到True#True

     

    list_1 .add(889)#增多1项

    list_1 .update([123,234,345])#添扩大项,=list_1 .update({123,234,345})

    print(list_1 )#{1, 2, 3, 4, 5, 6, 345, 234, 889, 123}

    肆、局地变量与全局变量

    names = ["Lili","Vae","Cici"]

    def change_name():

        names[0] = "李立"#列表,集结,字典能够在一部分里面改全局变量的,(元组本来就不行退换,字符串,整数不可改)

        print("inside func",names)

    change_name()

    print("outside func", names)

    施行结果:

    inside func ['李立', 'Vae', 'Cici']

    outside func ['李立', 'Vae', 'Cici']

    5、贰个高阶函数的事例

    def add(a,b,f):

        return f(a) f(b)

    res = add (3,-6,abs)   #abs:Return the absolute value of the argument.

    print(res )      #9

    6、一个递归的例证

    def calc(n):

        print(n)

        if int(n / 2) == 0:

            return n

        return calc(int(n/2))

    calc(10)    #10  5  2  1

    七、

    1、函数与经过

    #函数

    def func1():

        """testing壹,那是叁个函数"""

        print('in the func1')

        return 0

    #经过,进程就算从未再次回到值的函数

    def func2():

        '''testing贰,那是多少个经过'''

        print('in the func2')

     

    x = func1()#输出:in the func1

    y = func2()#输出:in the func1

     

    print('from func1 return is %s'%x)#输出from func1 return is 0

    print('from func1 return is %s'%y)#输出:from func1 return is None

    2、函数调用

    import time

    def logger():

        time_format = '%Y-%m-%d %X'#格式:年月日时分秒

        time_current = time .strftime(time_format )# Convert a time tuple to a string according to a format specification.

        with open('a.txt','a ') as f:

            f.write('%s end actionn'%time_current )

    def test1():

        print('test1 starting action...')

    logger()

     

    test1()   #test1 starting action...

    还要新建二个文书a.txt:

     皇家赌场 12

     

    3、函数再次来到值:

    def test1():

        print('in the test1')

     

    def test2():

        print('in the test2')

        return 0

     

    def test3():

        print('in the test3')

        return 1,'hello',['Bob','lili'],{'name':'Bob'}

     

    y = test2()

    z = test3()

    print(test1())#None

    print(y)#0

    print(z)#(1, 'hello', ['Bob', 'lili'], {'name': 'Bob'})当return多于3个赶回贰个元组

    4、函数的暗许参数

    #私下认可参数特点:调用函数时,默许参数非必须传递

    用途:一:def test(x,soft一=True,soft二=True),在默许安装值时,借使在逻辑判定时soft一=True,暗中认可安装soft壹

           二:连接数据库:def conn(host,port=330一)

                              pass

              主机钦定默许端口号

    (1)

    def test(x,y=2):

        print(x)

        print(y)

    test(1,y=3)#1 3

    (2)参数组

    1def test(*args):

        print(args )

     

    test(1,2,3,4,5,4)     #(一, 二, 三, 肆, 5, 四  )实参不固定期,将承受的实参放到元组

    test(*[1,2,3,4,5])     #(1, 2, 3, 4, 5)  即:args=tuple([1,2,3,4,5])

    2def test1(x,*args):

        print(x)

        print(args)

    test1(1,2,3,4,5,6,7)  # 1  (2,3,4,5,6,7)

    3#**kwargs把n个根本字参数调换到字典的方式,key:value,key:value...

    def test2(**kwargs ):

        print(kwargs )

        #print(kwargs['name'])

        #print(kwargs['age'])

        #print(kwargs['sex'])

     

    test2(name='lili',age=22,sex='Y')#{'name': 'lili', 'age': 22, 'sex': 'Y'}

    test2(**{'name':'vae','age':31,'sex':'Y'})#{'name': 'lili', 'age': 22}

     

    独家用伍个print输出结果三遍如下:

    a{'name': 'lili', 'age': 22, 'sex': 'Y'}   {'name': 'vae', 'age': 31, 'sex': 'Y'}

    blili  vae

    c22  31

    dY   Y

    def test3(name,**kwargs ):

        print(name)

        print(kwargs )

    test3('cecila',age=22,sex='Y')

    输出:cecila   {'age': 22, 'sex': 'Y'}

     

    # *args:接收N个地方参数,转变来元组,**kwargs接收关键字参数,调换来字典

    def test5(name,age=22,*args,**kwargs ):

        print(name)#vae

        print(age)#31

        print(args)#输出:()

        print(kwargs )#{'sex': 'Y', 'hobby': 'book'}

    test5('vae',sex='Y',hobby='book',age=31)

     

    1、文件操作: 文件操作流程: 一、 张开文件,获得文件句柄并赋值给一个变量 二、 通过...

    陆、一个递归的例子

    • rb
    • wb
    • ab

    晤面的关系

    list_1 = set([1, 3, 5, 7, 4, 9, 10])

    list_2 = set([1, 8, 10, 15, 12])

    #函数

    print(list_1 ,list_2 )#{1, 2, 3, 4, 5, 6} {33, 2, 1, 5, 22}

    a:追加方式

    open("guangzhou", "a", encoding = "utf-八")  只是不覆盖文件,在文件的末端扩大内容,那么些方式还不支持读read

        #print(kwargs['age'])

                              pass

    二.参数不定点,接受N个地方参数输出用元组

    def text(*args):

      print(args)

     

    text(1, 2, 3, 4, 6)或者text(*[1, 2, 3, 4, 6])

    -->(1, 2, 3, 4, 6) 元组

    #并集

     

    w :写读方式,只幸好终极面写,无法写到中间,那是硬盘机制

    #差集

    为此能够选拔循环,读1行,删除1行,内部存款和储蓄器中只保留壹行,就能够拍卖大文件了:

    r:读情势,暗中认可是读形式

    open("guangzhou", "r", encoding = "utf-8") 

    print(list_3 .isdisjoint(list_4 ) )#如果list_3与list_四从未有过交集重返True#True

    二、函数调用

    函数的定义方法

    def text(x):

      "The function definitions"

      x = 1

      return x

    函数能够回到八个值,用元组来回到,比如return 一, 三, “hello”, ["a", "b", "c"], {”name”:"杰森"}  重回其实是(一, 3, “hello”, ["a", "b", "c"], {”name”:"Jason"})

        print(kwargs )

    奉行结果:

    函数局地变量与全局变量

    在子程序中定义的变量为一些变量,在程序的一同首定的变量为全局变量,全局变量成效域整个程序,局地变量作用域定义该变量的子程序,当全局变量与局地变量同名时,在概念局地变量的子程序中,局部变量起功效,在别的地方全局变量起效果。

    在子程序中,变量字符串对全局变量的转移对外场没影响,不过,当全局变量为列表字典会集的时候,那个时候更改会潜移默化整个程序的

     

    print(f.tell())

    def test3(name,**kwargs ):

    文件的操作流程

    1.开发文件,得到文件句柄并赋给变量二个值

    贰.因此句柄对文本实行操作

    三.安歇文件

     

    f = open("guangzhou", "r", encoding = "utf-8") #文件句柄

    data = f.read() #f.readline()读取一行

    f.close()

    这样就把任何文件给读出来了,借使read()三次,那么第3个read()会读出空的从头到尾的经过,因为当第2个read()实行到位后,那年光标地点就处在文件的利落地方,再举行读取的时候也就读不到剧情了。

        print("inside func",names)

     

    文件的操作方式

    二、通过句柄对文件实行操作

    print(f.readline() )

    壹.参数牢固

    def text(x, y = 2):

      print(x,y)

    test5('vae',sex='Y',hobby='book',age=31)

    输出:cecila   {'age': 22, 'sex': 'Y'}

    rb:2进制读,用途网路传输,读取音频录制文件

    实施结果:

    相比图(五)-1与图(5)-二,发掘后者少了一句:“If you call your friends and nobody's home. 要是您打电话给情侣却并未壹人在家 ”,那是因为pass与continue的进行机制分歧,当count ==四起家时,pass之后会实行上边包车型客车print(line.strip()),而continue之后,程序跳转到 if count ==四:,所以会少打印壹行。

    聚拢的写法

    list_1 = set([1, 3, 4, 6, 7, 12, 5])

    print('from func1 return is %s'%x)#输出from func1 return is 0

    • r,只读方式(暗许)。
    • w,只写模式。【不可读;不存在则创立;存在则删除内容;】
    • a,追加形式。【可读;   不存在则开创;存在则只扩大内容;】

    集聚的差集

    print(list_1.difference(list_2)) 等价于 print(list_1 - list_2)

    -->{3, 5, 7, 4, 9}

        #print(kwargs['name'])

    inside func ['李立', 'Vae', 'Cici']

    3.收受N个关键字参数输出字典方式

    def text(**kwargs):

      print(kwargs)

     

    text(name = "Jason", age = 24)  -->{‘name’:'Jason', 'age':24}

     

    这个参数能够勾兑使用,例如:

    def text(name, *args, **kwargs):

      print(name)

      print(args)

      print(kwargs)

    text(“Jason”, 1, 2, 5, name = "Jason", age = 24)

    -->Jason

    (1, 2, 5)

    {'name':"Jason", 'age':24}

     

     皇家赌场 13

    实行之后,新确立了三个文本yesterday2.bak:

    with语句

    为了防止文件展开后忘记关闭,能够透过处理上下文,即:

    with open("guangzhou", "r") as f:

    2.柒本子之后也支撑同时对八个文本管理,即:

    with open("guangzhou", "r") as f, open("guangzhou2", "r") as f2:

     

    print(z)#(1, 'hello', ['Bob', 'lili'], {'name': '鲍勃'})当return多于多个赶回八个元组

    (一)读取文件

    flush方法

    当大家在以写文件的方法展开2个文件的时候,大家施行完一条语句write并不一定写到了硬盘上,它是先存到了内部存款和储蓄器中,当内部存款和储蓄器抵达自然大小的时候才初阶往硬盘上边写,那是因为内部存款和储蓄器的写速度要比硬盘快的多,但是当一些特定条件下供给实时刷新的话,大家就要用flush实行强制刷新,比如进程条,上面包车型客车例子:

    import sys, time

    for i in range(20):
      sys.stdout.write("*")
      sys.stdout.flush()
      time.sleep(0.1)

    团结能够进行下看一下

     

    print(f.readline())

    文件的其它形式

    f = open("guangzhou", "r", encoding = "utf-8")

    f.tell() #归来光标的职位,该重临的地方是字符的地方

    f.seek(0) #回到有个别光标地方

     

    (8)修改文件

    文件的操作

    def test3(name,**kwargs ):

     皇家赌场 14

    函数与函数式编制程序

     

    (4)

    字符集发展史

    中华字符集发展:gb231二--->gb18030-->gbk

    国际字符集发展:ascii(英文占用多个字节,不能够存中文)-->unicode(英中据为己有四个字节)-->utf-捌(汉语占用一个字节,英文三个字节)

    皇家赌场 15

     

    f = open("yesterday2",'r',encoding= "utf-8")#文本句柄,'r'是读情势,不写,默许是'r','w'写是创建1个文本,原来文件就没了

    用途:壹:def test(x,soft1=True,soft贰=True),在暗许安装值时,假使在逻辑剖断时soft一=True,暗中同意安装soft一

    a :追加读

     

    for line in f:

    字符编码与转码

    logger()

    四、函数的暗中认可参数

    聚拢的别的函数用法

    list_2.isdisjoint(list_3) #多少个无交集重返true

    list_1.add(4) #会见的增进

    list_1.remove(4) #聚集的去除,注意当集结中从不应该成分会报错所以大家更加多用下那几个删除

    list_1,discard(4) #删去,未有该因素则什么都不操作

     

    2def test1(x,*args):

    print(z)#(1, 'hello', ['Bob', 'lili'], {'name': '鲍伯'})当return多于贰个赶回贰个元组

    文本从3个文书读取并改变内容保留到其它三个文本

    f = open("guangzhou", "r", encoding = "utf-8")
    f_new = open("guanghzou3", "w", encoding = "utf-8")

    #巡回读取文件,且这种频率最高,比readlines()高多数
    for line in f:
      if "人在山东早已流转10年" in line:
      line = line.replace("人在广东现已流转拾年", "杰森在青海已经流转两年")
      f_new.write(line)
    f.close()
    f_new.close()

     皇家赌场 16

    def test1():

    r :读写情势,以读和增加的办法来读写,不管光标地方在哪,都在最终边写

    c22  31

        print('in the test1')

    聚拢的混杂

    print(list_1.intersection(list_2)) 等价于 print(list_1 & list_2)

    --->{1, 10}

        with open('a.txt','a ') as f:

     

    集结的父集

    print(list_1.issuprset(list_2))

    list_1是否是list_2的父集

    print(list_1 .difference(list_2 ) )#=print(list_1 - list_2 )#{3, 4, 6}

    6、1个递归的例子

    集中的操作

    聚拢是三个冬日的,不重复的数目整合,它的要害功能如下:

    去重,把2个列表酿成集结,就活动去重了

    提到测试,测试两组数据里面包车型地铁混合,差集,并集等涉嫌

    def calc(n):

    def func1():

    函数的私下认可参数

    #默许参数特点:调用函数时,暗中认可参数非必须传递

    count =1

    集中的并集

    print(list_1.union(list_2)) 等价于 print(list_1 | list_2)

    -->{1, 3, 5, 7, 8, 4, 9, 10, 15, 12}

    三、集合

        sys.stdout.flush()

    皇家赌场,高阶函数

    变量能够针对函数,函数的参数能接受变量,那么1个函数就足以就收另三个函数作为参数,这种函数称之为高阶函数。

     皇家赌场 17

    y = test2()

    w:写格局,展开文件时时创建八个文本,相当于原本的文本并未有了

    open("guangzhou", "w", encoding = "utf-8")  

    count =1

     皇家赌场 18

    会见的对称差集

    print(list_1.symmetric_difference(list_2)) 等价于 list_1 ^ list_2

    -->{3, 5, 7, 4, 9, 8, 15, 12}

    (玖)With语句:试行完后自行关闭文件

    四、局地变量与全局变量

    wb:二进制写

        print(x)

    伍、1个高阶函数的例子

    函数扩大参数

    def text(x,y):

      print(x,y)

    调用情势:

    1.text(1, 2)         -->1,二  任务参数调用

    2.text(x = 二,y = 一)    -->二,1  关键字参数调用

    3.text(2, y = 1)      -->2 , 1

    1. x = 1,

    y = 2

    text(x, y)        -->1, 2

    五.text(一, x = 2) 报错,x获得了多个值

    6.text(x = 2, 1)报错

    回顾,当既有地方参数又有关键字参数的时候,关键参数的背后无法有岗位参数,且不能够给多少个参数赋值

     

    calc(10)    #10  5  2  1

        if count ==4:

    f = open("yesterday2","r",encoding= "utf-8")

     

     

    print(f.readline() )

        print(args )

     

     

    open("yesterday2","r",encoding= "utf-8") as f2:

    #进度,进度纵然未有再次回到值的函数

    七、

        return 0

        print('in the func2')

    change_name()

    res = add (3,-6,abs)   #abs:Return the absolute value of the argument.

    print(line.strip())

    print(list_1 )#{1, 2, 3, 4, 5, 6, 345, 234, 889, 123}

        print(name)#vae

        if int(n / 2) == 0:

        print('test1 starting action...')

    a{'name': 'lili', 'age': 22, 'sex': 'Y'}   {'name': 'vae', 'age': 31, 'sex': 'Y'}

    f = open("yesterday2", 'rb')#贰进制文件读

    实行结果:

    def add(a,b,f):

    试行结果:

     皇家赌场 19

    list_1 = set (list_1)#把列表产生集结,集结是严节不另行的

        time_format = '%Y-%m-%d %X'#格式:年月日时分秒

        print(kwargs )

    print(res )      #9

        #print(kwargs['sex'])

    time.sleep(0.1)

    outside func ['李立', 'Vae', 'Cici']

    print(list_1 ,list_2 )#{1, 2, 3, 4, 5, 6} {33, 2, 1, 5, 22}

        f_new.write(line )

    文本操作流程:

        time_format = '%Y-%m-%d %X'#格式:年月日时分秒

     

    list_1 = [1,2,5,3,2,6,4,2,6]

            print('----------笔者是分割线-------')

    图(5)-1

    test2(**{'name':'vae','age':31,'sex':'Y'})#{'name': 'lili', 'age': 22}

    logger()

        print(args)

     

    print(f.readline())

    test1(1,2,3,4,5,6,7)  # 1  (2,3,4,5,6,7)

    f = open("yesterday2",'r',encoding= "utf-8")

        print('test1 starting action...')

    y = func2()#输出:in the func1

     

        if "经历了风口浪尖忍受了独身" in line:

    • r ,可读写文件。【可读;可写;可扩张】
    • w ,写读
    • a ,同a

    f.close()

        return f(a) f(b)

    二、函数调用

    c22  31

    (5)

    #函数

    open("yesterday2","r",encoding= "utf-8") as f2:

    names = ["Lili","Vae","Cici"]

    本文由68399皇家赌场发布于集群主机,转载请注明出处:python初学小结叁:文件、集合、函数、变量等

    关键词: 68399皇家赌场 编程语言 Python

上一篇:对 File.Delete 方法的一点观念

下一篇:没有了