___________________________________函数________________________
返回值 = 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)