随堂笔记 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)                                                                         新的文件中

原文地址:https://www.cnblogs.com/chrpy/p/8538841.html