zoukankan      html  css  js  c++  java
  • 随堂笔记 17day

    为什么python会火,是因为云计算和大数据是用python写的

    ————————————————————————————

    zip() 

      类似拉链一样,将两个数据一一对应起来,例如:

        1.     zip( ('a', 'n', 'c' ), (1, 2, 3 ) )                                             ('a', 'n', 'c' )和(1, 2, 3 )是有序列的,因为是元组

    RESULT:  [ ('a', 1), ('n', 2), ('c', 3) ]

        2.      P = {'name':'wwe', 'age':18, 'gender':'none'}

           print ( list (zip (P.keys(), P.values() ) ) )

    RESULT:       [ ('gender','none'), ('name','wwe'), ('age',18) )    ------因为字典是无序的,集合也是无序的。有序的:列表,元组,字符串

    zip注意事项:

      zip如果不是一一对应的,就不要。

    例如:4和5不要了,

      

    print(list(zip(('a', 'n', 'c'), (1, 2, 3, 4, 5))))
    结果:
    [('a', 1), ('n', 2), ('c', 3)]

    字符串也是序列类型,可以用zip

    例如:

    print(list(zip(('hello'), ('12345'))))
    结果:
    [('h', '1'), ('e', '2'), ('l', '3'), ('l', '4'), ('o', '5')]

    max()传入可迭代对象(参数)

    min()

    max例子:

      

    age_dic ={'age1':18, 'age4':20, 'age3':100, 'age2':30}
    print(max(age_dic.values()))
        #这样是取age_dic的values值做比较
    print(max(age_dic))
        #这样是取age_dic的keys值做比较-------通过for循环将每一个字符做比较,比较大小的规则是ascil表的相对应的位置
    
    结果
    
    1:100
    2:age4

    如果比较的是“age1‘更换成’age12345‘,然后和’age4‘比较。

      结果是’age4‘比较大,是因为在age后面4比1大,所以age1   2345-----不用再考虑已经比较出大小了

    每个元素间进行比较,是从每个元素的第一个位置依次比较,如果这一个位置分出大小,后面的都不需要比较,直接得出这两个元素的大小

    字符串不能和数字进行比较,不同类型之间不能进行比较,字符串是根据字符所在位置对应的编号大小进行比较,数字是通过大小进行比较。

    ord()

      print(ord(’a'))

    结果:97   -------------打印的是字符在ascii编码位置,和chr刚好相反。

    pow()

    pow(3,3)-------3的3次方

    结果是:27

    pow(3,3,2)   -------------3^3/2  取余数

    结果是:1

    round()------四舍五入

    set()集合

    可以切片和指定步长

    sorted()

      排序:排序的本质是在比较大小,不同类型之间是不可以比较大小

    str() 转成字符串

    type() 查看数据类型

    msg = '123'
    if type (msg) is str:
        msg = int(msg)
        res = msg +1
        print(res)
    结果:
            124

    sum()求和:

    l = [1, 2, 3, 4, 5]
    p = sum(l)
    print(p)                       #sum第一种用法
    
    print(sum(range(6)))           #sun第二种用法
                                   #为什么是range(6),是因为range取值[0, 6),取不到6

    import

    import 导入模块 (就是py文件,可以是自己写的和python系统的),   -----注意不能导入字符串

      工作原理:先import, 然后sys系统,最后是__import__()

    m = __import__()    ------可以导入字符串类型

    文件处理

    打开文件  f = open (‘陈粒’)--------有误(编码错误)

          分析:其中f = open (‘陈粒’)是文件句柄,open是使用用操作系统的编码,window是gbk,但是pychrm是utf-8。 陈粒是文件路径(在同个目录下,可以使用相对路径)

      更正:f = open (‘陈粒’, encoding = ‘utf-8’)

    文件处理流程:

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

      2.通过句柄对文件进行操作

      3.关闭文件

    文件打开模式:

      r,   w,   a   (只能读或者写或者追加)

      读    写      追加

    r模式

    f = open(‘陈粒’,‘r', encoding=’utf-8')

    print(f.readable()) --------是否可以读,返回布尔值

    print(f.readline()) -------一次读一行,没有值不会报错

              取消换行:print(f.readline(),end=' ')

              和readline(),的括号里加不了参数

    data = f.readlines()

    print(data)

    结果为;['111111 ', '2222222 ', '333333']

    文件处理写模式

    f = open(‘陈粒’,‘w', encoding=’utf-8‘)

              注意:在’w‘模式下,如果文件存在,就会将文件清空掉,再进行下列操作(就是新建相同文件名的文件覆盖掉原先的文件)

                       如果文件不存在,就会新建一个新的文件

    f.write('1111111111')  

    f.write('222222222')

    结果:11111111222222222        如果要写成两行就要在后面加上换行符

    f.write('1111111 ')

    f.writeable() 判断是否可写,返回是布尔值

    f.writelines(['55555 ','66666666 '])   以列表的形式写入

    f.write(3)---------会报错,是因为3是int(数字类型),而文件内容都是字符串,文件内容只能是字符串,所以只能写字符串。

    文件处理追加操作(类似日志)

    f = open('陈粒’,'a', encoding='utf-8')

    f.write('写到最后’)

    文件处理其他模式

    f = open(‘xxx’, ‘r+’,encoding=‘utf-8’)

    data= f.read

    f.write('12345sb')   写到前面,追加到前面

    文件没有修改这一说,数据的本子都是覆盖

    写的位置就是光标位置

    src_f = open('xxx.py', 'r+', encoding='utf-8')
    # data = src_f.readlines() #读的是将文件读成list类型(全部内容)
    data1 = src_f.read()
    print(data1)               #这是将所有内容读出来
    # print(data)
    src_f.close()
    
    文件内容显示:
    'sdsdfasffasdfas'
    '21312312321321' 
    'sdfsafasdf' 
    'sdfasfsadfdsa' 
    'sdfasfdsafdsaf' 
    'adfasfdsd'
    dst_f = open('xxx_new', 'w', encoding='utf-8')
    # dst_f.write(data)
    dst_f.write(data[0])
    dst_f.close()

    忘记上面的代码的教学目的是什么了,但是知道是将文件‘xxx’.py的第一行写到第二个文件‘xxx_new'的里的第一行

    文件修改

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

        f。write(’111 )

    with

      with open('xxx','r',encoding='gbk') as src_f,

        open('xxx_new','w',encoding='gbk') as drc_f:

      如果一行代码写的太长,要用(斜杠+回车)进行换行

    data = src_f.read() 从原文件中读到数据,然后原封不动的写到

    dst_f.write(data)                                                                         新的文件中

  • 相关阅读:
    通知:逆天异常库 V1.0版本支持下载了~~
    【源码】Word转PDF V1.0.1 小软件,供新手参考
    GitHub实战系列汇总篇
    GitHub实战系列~4.把github里面的库克隆到指定目录+日常使用 2015-12-11
    GitHub实战系列~3.提交github的时候过滤某些文件 2015-12-10
    Windows无法安装到这个磁盘。请确保在计算机的BIOS菜单中启用了磁盘控制器
    GitHub实战系列~2.把本地项目提交到github中 2015-12-10
    Git异常:fatal: could not create work tree dir 'XXX': No such file or directory
    GitHub实战系列~1.环境部署+创建第一个文件 2015-12-9
    肉肉好走,愿你在异界依旧快乐活泼
  • 原文地址:https://www.cnblogs.com/chrpy/p/8538841.html
Copyright © 2011-2022 走看看