0509Python基础-函数初识

1、昨日内容回顾

    文件操作:

            1,打开文件,产生文件句柄。

            2,对文件句柄进行操作。

            3,关闭文件。

    带b的都是操作非文本文件。

    读:

        r 读,可以默认不写。

            f1.read()全部读取。

            f1.read(n)

                r模式,n为字符。

                rb模式,n为字节。

            f1.readline() 按行读取。

            f1.readlines() 返回一个list,list里面的每个元素为原文件的每一行。

            for 循环。

 

 

        rb bytes类型读取。

        r+ 读写

        r+b

    写: 没有原文件,创建文件,写入内容。

        有原文件,清空原文件,写入内容。

        w 写,

        wb

        w+

        w+b

    追加:

         没有原文件,创建文件,写入内容。

         有原文件,直接追加内容。

         a

         ab

         a+

         a+b

    常用操作方法:

    f1.read()全部读取。

    f1.read(n)

        r模式,n为字符。

        rb模式,n为字节。

    f1.readline() 按行读取。

    f1.readlines()

    seek(0) 是以字节调节的,调节光标的位置。

    f1.seek(0,2) 将光标调整到最后。

    tell() 告诉光标的位置。

    readable() 是否可读。

    writable() 是否可写。

    truncate a a+ 对原文件进行截取。

    文件的改。

 

2、函数的初识

    def关键字 空格 函数名(与变量设置相同): 英文的冒号

    函数体

    执行函数 :函数名+()

    函数是以功能为导向的,

    def login():

        pass

    def register():

        pass

  

3、函数的返回值。

    return: 1,函数中遇到return 结束函数,下面代码不执行。

            2,将函数里面的值返回给函数的执行者(调用者)。

                第一种情况:

                    只有return,返回None

                第二种情况:

                    return None

                第三种情况:

                    return 单个值(返回的值与单个值的类型相同)

                第四种情况:

                    return 多个值 以元组的形式返回给函数的调用者。

 

什么是None?

所有的空集合,空列表,空字典.... --->None

l1 = [1, 2, 3, 1, 6, 9, 10]

print(len(l1))

  

def my_len():

    l1 = [1, 2, 3, 1, 6, 9, 100]

    count = 0

    for i in l1:

        count += 1

    return count

print(my_len())

  

def login():

    print(111)

    print(222)

    return

    print(333)

 

login()

def login():

    a = 2

    b = 3

    print(111)

    print(a,b)

    return

 

print(login())

 

def login():

    a = 2

    b = 3

    # return a

    return [1, 2]

print(login(),type(login()))

ret = login()

a, b = ret

print(a, b)

  

def login():

    a = 2

    b = 3

    return 1, 'alex', [1, 2], {'name': '老男孩'}

 

ret = login()

print(ret)

 

4、函数的参数。

    # 实参角度

    位置参数

        一一对应,实参形参数量相等

    关键字参数

        一一对应,实参形参数量相等,实参顺序可变

    混合参数 (位置参数,关键字参数)

        关键字参数必须在位置参数后面

 

    # 形参角度

    位置参数

         一一对应,实参形参数量相等

    默认参数

        默认参数必须放在形参的位置参数后面

        默认参数不传值则为默认值,传值则覆盖默认值。

    动态参数

  

def my_len(a):  #  形式参数,形参

    count = 0

    for i in a:

        count += 1

    return count

l1 = [1, 2, 3, 1, 6, 9, 100]

print(my_len(l1))

s1 = 'fkdshadslfs'

my_len(l1)

ret = my_len(l1)  # my_len(l1) = count

print(ret)

print(my_len(l1))  # 实际参数,实参

print(my_len(s1))  # 实际参数,实参

 

s1 = 'fhdsjfdsfsadfgsd'

len(s1)

  

def tes(a, b, c):

    print(111)

    print(a, b, c)

 

tes(22, 'alex', [11, 22, 33])

 

def max(x, y): return x if x > y else y

print(max(3000, 200))

# '''

# 三元运算

 

# '''

x = 100

y = 99

if x > y:

    print(x)

else:

    print(y)

 

c = x if x > y else y

print(c)

 

def tes(a, b, c):

    print(111)

    print(a, b, c)

 

tes(22, 'alex', [11, 22, 33])

 

 

def func(x, y,):

    print(x, y)

 

func(y=3333, x=4)

 

 

def func1(x, y, z):

    print(x, y, z)

 

func1(111, 222, z=555)  # 混合传参 位置参数必须再前面

func1(111, y=555, 222)  # 混合传参 位置参数必须再前面

  

def func2(y, x):

    print(x, y)

func2(1, 2)

  

def input_information(name, sex='男'):

    with open('information',encoding='utf-8', mode='a') as f1:

        f1.write('{}\t{}\n'.format(name, sex))

 

while True:

    msg = input('请输入用户的姓名,性别\Q或者q退出').strip()

    if msg.upper() == 'Q':break

    if ',' in msg:

        name1, sex1 = msg.split(',')

        input_information(name1, sex1)

    else:

        input_information(msg)

posted on 2018-05-09 15:24  kindle86  阅读(101)  评论(0编辑  收藏  举报

导航