python基础09

 

python基础09

昨日回顾

#文件处理

  #打开文件

    #open('路径','打开方式','指定编码方式')

#打开方式  r  w  a  r+  w+  a+  b

    #r+  打开文件直接写  和读写再写

      #操作文件

    #读

    #写

  #关闭问价

      # 操作文件  

    #读

    #read   一次性读

   #readlines  一次性读

   #readline    一行一行读

   #不知道在哪儿结束

   #视频  图片 rb  bytes  按照字节读

 #for循环--------最好!!!

 #光标----------文件指针

  #seek_指定光标移动到某个位置

      #tell_获取光标当前的位置

     #truncate_截取文件

with open('小护士班主任',encoding='utf-8') as f,open('小护士班主任.bak','w',encoding='utf-8') as f2:
    for line in f:
            if '星儿' in line:
                line = line.replace('星儿','啊娇')
    #写文件
            f2.write(line)

import os

os.remove('小护士班主任')    #删除文件

os.rename('小护士班主任.bak','小护士班主任')        #重命名文件


  

 

  

#函数

s = '金老板小护士'
#len(s)
def my_len():
    i = 0
    for k in s:
        i += 1
    print(i)

 


  

#定义了之后,可以在任何需要它的地方调用

#没有返回长度,只要单纯的打印

#返回的重要性

def my_len():#自定义函数
    i = 0
    for k in s:
        i += 1
    print(i)
    return i#返回值
length = my_len()
print(my_len())

 

#len()
#1.不能变,只能计算s字符串的长度
#2.只是输出了结果

def my_len(): #自定义函数
    i = 0
    for k in s:
           i +=1
     return i#返回值
length = my_len()
print(length)
def func()
    l = ['金老板','二哥']
    for i in l:
        print(i)
def func():
    l = ['金老板','二哥']
    for i in l:
        print(i)
ret = func()
print(ret)
def func()
    l = ['金老板','二哥']
    for i in l:
        print(i)
    return
    print('二哥二哥二哥')
ret = func()
print(ret)

 

def func():
    l = ['金老板','二哥']
    for i in l:
        print(i)
        if i == '金老板':
            return
def func():
    l = ['金老板','二哥']
    for i in l:
        print(i)
        if i == '金老板':
            break
    print('='*10)
ret = func()
print(ret)

 


  

#a,b

#len(a)  #内置函数

#len(b)

#len()

#1.不能变,只能计算s字符串的长度

#2.只是输出了结果

#返回值的3种情况

  #没有返回值

    #不写return

    #只写return:结束一个函数的继续

    #return None-------不常用

  #返回1个值

    #可以返回任何数据类型

    #只要返回就可以接受到

    #如果在一个程序中有多个return,那么只执行第一个

def func():
    return [1,2,3,4]
print(func())
print(r)

 


  

  #返回多个值

     #多个返回值用多个变量接受:有多少返回值就用多少变量接收

    #用一个变量接受:得到的是一个元祖

 

 

def func()
    return 1,2
r1,r2 = func()
print(r1,r2)
r1,r2,r3 = func()
print(r1,r2)

 

 

 def func2():

  return (1,2,3)

r = func2()

 


 

 

 参数

   #没有参数

  

s = '金老板小护士'
def my_len(s):
    i = 0
    for i in s:
        i += 1
    return i
ret = my_len(s)
print(ret)

def my_len(s):

  i = 0

  for k in s:

    i += 1

  return i

s =  '金老板小护士'

ret = my_len(s)

ret =my_len([1,2,3,4,5])

print(ret)

def f1(l1):

  for i in l1:

    print(i)

def f2(l1):

  f1(l1)

  for i in l1:

    print(i)

f2([1,2,3,4])

  def f2(l1):

    f1(l1)

    for i in 11:

      print(i)

  f2([1,2,3,4])

       def  f1(l1):    

    for i in l1:

      print(i)

 def my_sum(1,2)

  res = a + b

  return res

ret = my_sum(1,2)

print(ret)

#位置函数

def my_sum(a,b):

  print(a,b)

  res = a+b

  return res

ret = my_sum(2,b=1)

print(ret)

def my_sum(a,b):

  print(a,b)

  res = a + b

  return res

ret = my_sum(2,a =1)

print(ret)

 


  

      #定义函数和调用函数时括号里都不写内容

   #有一个参数

      #传什么就是什么

#站在实参的角度上:

  #按照位置传参

  #按照关键字传参

  #混着用可以:但是  必须先按照位置传参,再按照关键字传参数

    #不能给同一个变量传多个值

#站在形参的角度上

  #位置参数:必须传,且有几个参数就传几个值

  #默认参数:可以不传,如果不传就是用默认的参数,如果传了就用传的

def classmate(name,sex):
    print('%s,%s'%(name,sex))
classmate('二哥','难')
classmate('小孟','男')
classmate('大猛','男')
def classmate(name,sex='男'):
    print('%s : %s'%(name,sex))
classmate('二哥')
classmate('小孟')
claasmate('大猛')

  

#只有调用函数的时候:

  #按照位置传:直接写参数的值

  #按照关键字:关键字 = 值

#定义函数的时候:

  #位置函数:直接定义参数

  #默认参数:关键字参数:参数名 = ‘默认的值’

 

  #动态参数 :可以接受任意多个参数

        #参数名之前加*,习惯参数名args

 

        #参数名之前加**,习惯参数名kwargs

def sum(*args):
    n = 0
    for i in args:
        n += i
    return n
print(sum(1,2))
print(sum(1,2,3))
print(sum(1,2,3,4))
def func(*args):
  print(args)
func(1,2,'str',['lst',1])
func(1,2,'str',l = ['lst',1])

 



 def func(*args,l =[])

  print(args,l)
func(1,2,'str',['lst',l])
func(1,2,'str',l =['str',1])

def func(**kwargs):
  print(kwargs)
func(a = 1,b = 2,c = 3)
func(a = 1 ,b =2)
func(a = 1)

def func(*args,**kwargs):

  print(args,kwargs)

func(1,2,3,4,5,a = 'aaaa',b='bbbb')

def func(*args,default = 1,**args):

  print(args,kwargs)

func(1,2,3,4,5,default=1,a='aaaa',b = 'bbbb')

def func(*args):

  print(args)

func(1,2,3,4,5)

l = [1,2,3,4,5]

fun(*l)

def func(**kwargs):

  print(kwargs)

func(a =1 ,b =2)

d ={'a':1,'b':2}

func(**d)

 


  

  #顺序:必须先定义位置参数,*args,后定义默认参数

 #动态参数有两种:可以接受任意个参数

  #*args:接收的是按照位置传参的值,组织成一个元祖

  #**kwargs:接受的是按照关键字传参的值,组织成一个字典

  #args必须在kwargs之前

  #函数的注释

def func():

  '''

  这个函数实现了什么功能

  参数1:

·   参数2:

  return :是字符串或者列表的长度

  '''

  pass

  #默认参数的陷阱

 #文件的修改

 #函数

 #1.函数的定义 def

 #2.函数的调用

 #3.函数的返回值  return

·· #4.函数的参数

  #形参:

    #位置参数:必须传

    #*args:可以接收任意多个位置参数

    #默认参数:可以不传

    #**kwargs:可以接收多个关键字参数

#实参:按照位置传参,按照关键字传参

 

posted @ 2019-03-05 20:31  微光半夏  阅读(204)  评论(0编辑  收藏  举报