python not3_python note #3

Hello, guys! I found it pretty difficult to get my content according to my key words. So in this note, I'd like to optimize my key word to do some help.

Content

set: logical relation between sets; sets operation

file: file operation, including append, delete, modify and seek

encode & decode

function: definition, use, create, variety, recursive function and higher-order function

Part 1_SET

There are some codes to judge the relation between sets, involving intersection, union, difference, subset, superset. Also, sometimes sets need to be operated. Thus, some operations in sets like append and delete are worth our attention. Because they are really easy to understand and use, codes are presented directly below:

SET

Part 2_FILE

1 open & close

To open a file, command of open can be used and give the file value to a named variety. However, there are multiple modes to open a file, which decide how the file can be operated. Thus, these modes include:

r: files can only be read;

r+: files would be read first and append is allowed, most commonly use;

rb: binary file, mainly used to open a binary file like net transferring file to prevent corrupting;

w: create a file and write something new into the file, but cannot be read;

w+: files would be wriiten first and read in the followting;

a: append sth. new into the file;

a+: append sth. new into the file and can be read;

And the complete code to open and close a file shows below:

f = open('time after time','r+')

f.write('hello binary'.encode())

f.close()

But sometimes, we always forget to use .close() to close a file. To prevent this from happening, the best way to open a file is with open:

importsys#自动关闭文件

with open('lyric','r',encoding='utf-8') as f1,\

open ('lyric.bak','r',encoding='utf-8') as f2:for line inf1:print(line)for content inf2:print(content)

2 operation: read & write

Several modes can be used to read a file, including read, readline, readlines. And codes can most clearly show their use:

#读取5行数据并打印

for i in range(5):print(f.readline())#将每行存成列表进行读取,readlines只适合于读小文件

for index,line inenumerate(f.readlines()):if index == 9:print('---------我是分割线--------')continue

print(line.strip())#improve last loop, making it possible to only store a line each time.

count =0for line inf:if count == 3:print('--------hhhhhhh-----------')

count+= 1

continuecount+= 1

print(line)

Usually, there is a pointer in the system to locate the file' content you're trying to operate. So we can use .tell() to tell the pointer's location anc use .seek() to get back to some specific position.

with open('lyric','r',encoding='utf-8') as f1,\

open ('lyric.bak','r',encoding='utf-8') as f2:for line inf1:print(line)for content inf2:print(content)print (f.tell()) #output the pointer's location of the file handle

print(f.readline())print(f.readline())print(f.readline())print(f.tell())

f.seek(0)#tell--pointer's location; seek--back to some position; use both together usually

print(f.readline())

pointer

3 others

there are some other operations, like replace:

f = open('lyric','r',encoding = 'utf-8')

f_new= open('lyric.bak','w',encoding = 'utf-8')for line inf:if'大大的世界上'inline:

line= line.replace('大大的世界上','aaaaayoyoyoyo')

f_new.write(line)

f.close()

f_new.close()

replace

flush: it's better to add .flush() in the file code to help update and store.  Besides, flush can be used to do some pretty interesting things. For example, flush can show the process of loading sth.

'''利用flush显示进度条,stdout--标准输出,time.sleep--调整时间间隔

import sys以及time模块,显示进度条'''

importsys,timefor i in range(50):

sys.stdout.write('#')

sys.stdout.flush()

time.sleep(0.1) #设定刷新周期

flush

Part 3_ENCODE&DECODE

In this part, only one thing worth remembering: Unicode is the key to all. We can use .decode() to get to the unicode from other types and .encode() to get to the other coding types from unicode.

Part 4_FUNCTION

1 return

After defining a function, it's pretty important to use return to return a value. Because we need a result for the proof of executing a function.

#function

deffunc1():'testing1'

print('in the func1')return0#process: is a function without return

deffunc2():'testing2'

print('in the func2')deffunc3():'testing 3: return type,可以return任何东西'

print('in the func3')return 0,'hello world',['hello',23],{'name':'Eva'}

x=func1()

y=func2()

z=func3()print(x)print(y)print(z)

function&return

2 parameter

There are 2 parameters in the function. In the definition part, we need to define formal parameters. While using, actual parameters need to be defined. Besides, if parameters are input directly when invoking a function, they are named location parameters and one-to-one match with formal parameters. Also, key parameters can be used and location is not that important while using key parameters.

#(m,n)形参;(1,2)实参;一一对应

deftest(m,n):print(m)print(n)#位置参数调用

test(1,2)#关键参数调用,关键字参数不能写在位置参数前面

test(n=5,m=7)#默认参数特点:调用参数,默认参数非必须传递#用途:默认安装值;默认主机服务端口

def test2(i,k=7):print(i)print(k)

test2(3)

parameters

3 *args & **kwargs

Well, sometimes, we are not that sure about the number of actual parameters. And then, *args & **kwargs can be used to transform parameters into tuple or dictionary.

#实参数目不固定==》参数组,将其变成元组,*后面内容随意但最好是args#*args接收的是位置参数,无法接收关键字参数

def test3(*args):print(args)

test3(1,3,6,5,4,2,8)

test3(*[1,3,6,5,4,2,8])def test4(p,*name):print(p)print(name)

test4(1,3,6,5,4,2,8)#N个关键字参数转换成字典--**kwargs,参数组往后放

def test5(**kwargs):print(kwargs)print(kwargs['nickname'])print(kwargs['age'])print(kwargs['gender'])

test5(nickname= 'Eva',age = 66, gender = 'F')

test5(**{'nickname':'Eva','age':66, 'gender':'F'})

*args & **kwargs 1

#需要先定义,再调用#def test5(**kwargs):#print(kwargs)#print(kwargs['nickname'])#print(kwargs['age'])#print(kwargs['gender'])#print(logger())#

#test5(nickname = 'Eva',age = 66, gender = 'F')#

#def logger(source):#print('from %s' % source)

**kwargs 2

4 variety

The scope of the variety defined in a function can only be used in this function. If we want use it,  we need to global the variety.

school = 'UUU'

#除了字符串和整数,列表、字典、集合、类都可以在函数的局部变量中直接修改全局变量

defchange_name(name):global school #如果想将局部变量作用于全部程序,要用global

school = 'xxx'

print('before change:',name,school)

name= 'Eva Han' #局部变量:这个函数就是这个变量的作用域

print('after change:',name)print(school)

name= 'eva'change_name(name)print(name)

local & global variety

5 recursion function

It's a function that would involk itself in the definition.

'''递归:一个函数自我调用

要求:

1、有一个明确的结束条件,只能递归999次

2、问题规模应该逐渐减小

3、递归效率不高'''

defcalc(x):print(x)if int(x/2)>0:return calc(int(x/2))print('--->',x)

calc(10)

recursion function

6 high-order function

defadd(a,b,c):return c(a)+c(b) result= add(3,-6,abs)print(result)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值