week3

___________________________________函数________________________

返回值 = 0 ,返回 0

返回值 = 1, 返回object

返回值>1 ,返回tuple

-----------------''' 日志带日期 '''-------------

def log(a):
  import time
  a = input('daily paper:')
  time_format = '%Y - %m - %d   %X'
  time_current = time.strftime(time_format)
  with open('file_name' , w+','encoding') as f:
    f.write('%s\n%s\n'%(a,time_current))

--------------------return-------------------

def text():
  '''text'''
  print(text1) #返回值为None

def text1():
  '''text1'''
  print('text1')
  return 0 # 返回值为0

def text2():
  '''text2"'
  print('text2‘)
  return 1,[1,2,3,4,5],'duanran',{'name' :'alex'} # 返回值为tuple

x  = text
y = text1
z = text2

---------------------------函数参数-------------------

调用方法

1、位置参数调用

def text(x,y): #x,y为形参

  print(x)
  print(y)
text(1,2) # 1,2位实参

2、关键字参数调用

text(y = 2,x = 1)

3、既有位置参数调用又有关键字参数调用,位置参数调用要在关键字参数之前
def text(x,y,z):
  print(x,y,z)
text(1,z = 2 ,y = 3)

--------默认参数--------

def text1(x = 2 ,y)
  print(x)
  print(y)
text1(1)

>>>>>2,1

---------函数组----------

1、*args

def text(*args): #将输入的位置参数生成一个tuple
  print(args)
text(1,2,3,4,5,[1,2,3])

2、**kwargs

def text(**kwargs):#将输入的关键字参数生成一个dictionary
  print(kwargs)
text(name = 'alex',age = '20')

3、组合

def text(x,*args,*kwargs):
  print(x,args,kwargs)
text(1,2,3,name = 'duanran',age = '20')

-------------高级函数

将一个函数作为参数传递到另一个函数中

def cul(a,b,f):
  return f(a) + f(b)
cul(1,-9,abs) #取模

>>>>>>10

-------------递归函数

将一个函数形成环

def cal(n):
  print(n)
  if n // 2 > 0 :
    return cal(n // 2)

cal(20)

>>>>>>>>>>20 10 5 2 1

------------------------------------------------全局参数与局部参数---------------------------------------

在python中变量的作用域为函数

a = 50
def g():
  a = 20
  print(a)
g()
print(a)

>>>>>>>>>>>>20   50

global

a = 50

def g():
  global a 
  a = 20
  print(a)
g()
print(a)

>>>>>>>>>>>>>20    20

--------------------------------------文件操作-----------------------------------

r是只读,w是写(如果写的文件存在,会直接覆盖原来的数据,不能读取),a是追加(也不允许读取)
r+读写(读追加,写的东西在最后一排)
w+ 写读(先创建一个新文件,如果文件存在将会覆盖)
a+ 追加写读
rb 二进制文件读
wb 二进制文件写
ab 二进制文件写
f = open('yesterday_2','r',encoding='utf-8')
print(f.tell())#读取当前位置,按字符个数来而不是行数
f.readline()
print(f.tell())
f.seek(0)#将指针回到起点,但并不是所有的都可以移动指针
print(f.tell())
f.seekable()#判定是否能移动指针
f.fileno()#判定是否为终端
f = open('yesterday_2','a',encoding='utf-8')
f.truncate()#如果没有参数,那么将会清空整个文件
f.truncate(10)#如果有参数,那么将从这里截断,后面全部清空

------读条操作
import sys,time
for i in range(20):
  sys.stdout.write('*')
  sys.stdout.flush()
  time.sleep(1) ------------------------------------集合--------------------------

具有自动查重,关系测试等特点

a = set([1,2,3,3,4])

>>>>>>>>[1,2,3,4]

-----------关系测试--------

交集

a.intersection(b)
a & b

并集

a.union(b)
a | b

差集

a.difference(b)
a - b

对称差集(并集 - 交集)

a.symmetric_difference(b)
a ^ b

----------------增删改查------------

a.add()#增加某个固定值

a.update() # 增加多个元素

a.remove() # 指定删除,如果集合里没有这个数值,将会报错

a.pop() # 任意删除

a.discard # 指定删除,如果不存在不会报错

——————————————————————————字符编码___________________________

'''python3的文件编码格式是unicode,尽管在里面改成了utf-8,但实际上写的数据还是unicode,并且在python3中encode还把数据转成了
bytes类型'''
s_to_unicode = s.decode('utf-8')  #告诉unicode原来是什么格式
s_to_gbk = s.encode('gbk')#告诉unicode需要转换成什么格式
print(s_to_gbk)

    

  

上一篇:hibernate流程图


下一篇:GNU Radio: 自定义 block 实例