python's ninth day for me

   函数

    函数的定义与调用:

      #def  关键字  定义一个函数。

     # my_len  函数名, 函数名的书写规则与变量的命名一致。

     # def  与函数名中间一个空格。

     # 函数名() :  加上冒号。

     #  里面的整体被称为函数体。

def my_len():      
    li = [1,2,3]
    count = 0
    for i in li:
        count += 1
    print(count)
my_len()      #函数的执行:  函数名+()

函数的返回值:

  写函数,不要在函数中写print()

#   return 

#1. 在函数中,遇到return结束函数。

#2. 将值返回给函数的调用者。

      # 无 return

      #  return None

      #  return 1 个值,该值是什么,就直接返回给函数的调用者,函数名() 

def my_len():
    li = [1,2,3]
    count = 0
    for i in li:
        count += 1
    return count   #返回count的值给  my_len()
print(my_len())     

       #  return 多个值,将多个值放到一个元祖中,返回给函数调用者。

def func():
    return 1,2,3,[4,5,'顾清秋'],6
print(func())

#  (1, 2, 3, [4, 5, '顾清秋'], 6)

函数的参数传值:

     实参角度:

            1,位置传参。按顺序,一 一 对 应.

def func(a,b,c):
    print(a)
    print(b)
    print(c)
func(1,2,3)     #一一对应位置传参。

#       1
#       2
#       3

 

           2,关键字传参,不按顺序,一 一 对 应。

def max(a,b):
    if a > b:
        return a
    else:
        return b
# num1 = int(input('请输入第一个数'))
# num2 = int(input('请输入第二个数'))
print(max(b = 10,a = 9))
def max(a,b):
    return a if a>b else b
print(max(b = 10,a = 9))

#      10

             3, 混合传参, 关键字参数永远在位置参数后面。

def func(a,b,c):
    print(a)
    print(b)
    print(c)
func(1,c = 2,b = 4)  #关键字参数永远在最后面

#       1
#       4
#       2

      形参角度:

         1,位置传参,按顺序,一 一对应。

def func(a,b,c):
    print(a)
    print(b)
    print(c)
func('顾清秋',2,4)

# 顾清秋
# 2
# 4

         2,默认参数,传参则覆盖,不传则为默认参数,默认参数永远在位置参数后面。

def func(a,b=1):   # b =1 为默认参数
    print(a)
    print(b)
func('顾清秋')

# 顾清秋
# 1
def func(a,b=1):   # b =1 为默认参数
    print(a)
    print(b)
func('顾清秋','懒笨呆')

# 顾清秋
# 懒笨呆  

简单的学生信息录入系统:

def infor(name,sex = ''):       #定义一个函数 infor
    with open('msg',encoding='utf-8',mode='a') as f:  #创建'msg' 文件准备追加内容
        f.write('{}\t{}\n' .format(name,sex))    # 格式化输出   能够同时写入 name 和 sex 信息。
while True:
    name = input('请输入姓名,男生请以1开头,例如:1张三').strip()
    if '1' in name:        #判断name中是否有'1'
        name = name[1:]      #用切片将输入的'1'删除
        if name == '':         #判断是否输入为空
            print('没有输入名字,请重新输入...')
            continue           #跳回输入阶段
        else:
            infor(name)        #调用函数,传入实参。
    else:
        infor(name,'')       #调用函数,传入实参。

 

posted @ 2018-03-28 16:13  Qingqiu_Gu  阅读(164)  评论(0编辑  收藏  举报