Python学习的第四次总结

修改文件内某行内容

f_read = open('文件名','r',encoding='utf-8')
f_write = open('文件名1','w',encoding='utf-8')
number = 0
for i in f_read :
number +=1
if number == 2 :
i = ' 被修改的内容\n '
f_write.write(i)
f_write.close()
f_read.close()

1、文本文件里存的字符串  #   a = str ( 字典名 )

2、转成字典   b = eval ( a ) 

3、创建多个文件对象

with open('文件名','r',encoding='utf-8') as f , open('文件名1','r',encoding='utf-8') as f1:
    a = f.read()
    b = f1.read()
    print(a,b)

4、查找所有的关键字

from  keyword  import kwlist
for i in kwlist:
    print(i)

5、身份运算符:is、is not

      成员运算符:in、not in

6、' he \'s  sad   '   #转译字符\

7、repr(' ....\n.....    ')#方便计算机阅读,换行符\n不会被执行


深浅拷贝

s = [1,[2,3],4,5]
import copy
c = copy.copy(s)
d = copy.deepcopy(s)
s[1][0] = 7
print(s)    #[1, [7, 3], 4, 5]  浅拷贝会导致原列表发生改变
print(c)    #[1, [7, 3], 4, 5]  浅拷贝可以修改需要的内容
print(d)    #[1, [2, 3], 4, 5]  深拷贝不会修改原列表,能完整的反映原列表(克隆)

集合 set(参数只能为一个)

1、集合内的元素必须是可哈希的,不可改变的(整形,字符串,元组)

2、内容是无序的,不可重复的

3、set整体为可改变类型,故不能做成字典

4、set运用

a = set('lyzqyjdf')
print(a)  #{'8', '9', '3', '6', '1'}

b = ['ly','yzq','DD','ly','yzqqq']
c = set(b)
print(c)     #{'DD', 'yzqqq', 'yzq', 'ly'}

5、添加

a = set('lyzqylove')
a.add('3')
print(a)   #{'z', 'q', '3', 'y', 'v', 'e', 'o', 'l'} 
b = set('lyzqylove')
b.update('ops')  #{'e', 'q', 'o', 'l', 'v', 'z', 'y', 's', 'p'}
b.update(['1206','95'])  #{'z', 'o', 'y', 'v', 'l', '1206', '95', 'q', 'e'}
print(b)

6、删除

b = set('lyzqylove')
b.remove('y') #{'z', 'e', 'v', 'l', 'q', 'o'}
b.pop()   #随机删除
b.clear()  #set()
del b   #从内存中删除,并报错
print(b)

7、等价

set('     lyyyyzqy   ')==  set('lyzq')

8、属于

set('ly')<  set('lyyzq')

9、联合

a = set('ly')  or  set('lyzq')
print(a)     #{'l', 'y'}交集

a = set('ly')  and  set('lyzq')
print(a)       #{'y', 'q', 'l', 'z'}全集

10、其他

a = set('123')
b = set('124')
print(a.intersection(b))
print(a&b)                #{'1', '2'} 交集

a = set('123')
b = set('124')
print(a.union(b))
print(a|b)          #{'1', '3', '4', '2'}并集

a = set('123')
b = set('124')
print(a.difference(b))  #{'3'}  in a but not in b

print(a.symmetric_difference(b))
print(a^b)                #{'4', '3'}  双向差集

a = set('123')
b = set('123456')
print(a.issuperset(b))  #False   判断a是否为b的父级
print(a.issubset(b))    #True   判断a是否为b的子级

函数(subroutine、procedure)

一、特点:

1、容易拓展

2、一致性、方便调用、减少代码量

二、函数格式:

def  funtion_name() :   #函数名命名和变量1命名要求基本一致

  内容

funtion_name()   # 直接调用,一定要加括号

三、参数

1、必须参数

def add(x,y):    #x,y 为形参,不占内存
    print(x+y)
add(3,5)     #3,5按顺序分别对应x,y

取系统的时间

import time
time_format = '%Y-%m-%d %X'
time_current = time.strftime(time_format)
print(time_current)      #2020-07-28 12:04:40

 2、关键字参数

def info(name,age):
    print('Name: %s'%name)
    print('Age: %s'%age)
info(name='LY',age='19')
Name: LY
Age: 19

3、默认参数(写在最后面)

def info(name,age,gender='male'):
    print('Name: %s' % name)
    print('Age: %s'%age)
    print('gender:%s'%gender)
info('ly','19','female')    #  Name: ly  Age: 19 gender:female
info('yzq','19')    #Name: yzq  Age: 19  gender:male

4、高级版加法器(两者使用的时候要居左、居右,不可混合使用)

def add(*args):
    sum = 0
    for i in args:
        sum += i
    print(sum)
    return sum
add(1,2,3,4,5)    #可以接收无穷多个值,多个值组成一个元组

def add(**kwargs):
    for i in kwargs:
        print('%s:%s'%(i,kwargs[i]))
add(lover='yzq',hobby='exile')   #任意输入多个键值对,处理成字典

四、return

1、结束函数,返回某个添加的对象

2、若不加return,默认返回None

3、如果return后有多个对象,py会自动帮我们处理成元组

4、return后面的语句不会被执行

五、作用域

1、LEGB

x = int(8.9)   # bulit-in域
start = 0      # global域
def  out():
    o_count = 1    #encoding域
    def inner():
        i_count = 2   #local域
        print(i_count)
    inner()
out()

2、声明作用域

count = 9
def f():
    global count    #声明以下的count为global类型而不是encoding类型
    count = 0
    print(count)
f()


def f():
    i = 8
    def y():
        nonlocal i   #声明i为nonlocal类型
        i = 7
        print(i)
    y()
f()

****终于总结完了,懒惰是魔鬼!loveyzqqqq~.~

猜你喜欢

转载自www.cnblogs.com/linyu3454/p/13388125.html