python's ninth day for me

时间:2023-02-08 11:34:49

函数

    函数的定义与调用:

      #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) #一一对应位置传参。 #
#
#

           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)) #

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

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

      形参角度:

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

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

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

def func(a,b=1):   # b =1 为默认参数
print(a)
print(b)
func('顾清秋') # 顾清秋
#
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 '' in name: #判断name中是否有'1'
name = name[1:] #用切片将输入的'1'删除
if name == '': #判断是否输入为空
print('没有输入名字,请重新输入...')
continue #跳回输入阶段
else:
infor(name) #调用函数,传入实参。
else:
infor(name,'女') #调用函数,传入实参。