Day 9 初识函数

一、认识函数
函数:对代码块和功能额封装和定义
语法:
def 函数名(形参):
函数体

函数名(实参) #调用函数
这里的函数名的命名规则和使用变量基本一样
函数体:就是函数被执行之后要执行的代码
下面来定义一个约x功能:
def yue():
    print("拿出手机")
    print("打开陌陌")
    print("找个漂亮的妹子")
    print("问她,约不约啊?")
    print("OK,走你")
  定义完了,但是这个时候去执行,会发现什么都没有发生,因为我只定义了一个函数,但是还没有执行过这个函数。
  函数的调用:使用函数名可以调用函数,写法:函数名(),这个时候函数的函数体就会被执行了
# 调用yue()函数
yue()
结果:
拿出手机
打开陌陌
找个漂亮的妹子
问她, 约不约啊?
oK. 走你!
  如果我还想约呢?多次调用就可以了,很方便。
# 调用yue()函数
yue()
yue()
yue()
yue()
yue()
  继续分析,约完了之后你需要得到一个结果吧,比如:约完得到了一个萝莉,少妇,大妈。总得有个结果,那么这个结果怎么来描述和获得呢?这个就涉及到函数的返回值的问题。



二、函数的返回

执行完函数之后,我们可以使用return来返回结果。
1.函数中遇到return,此函数结束,不再继续执行。
def yue():
    print("约你")
    print("约我")
    print("约他")
    return
    print("约谁呀") # 这句话不会被执行
yue()



结果:

约你
约我
约他

 
  

2.给函数的调用者一个访问结果
def yue():
    print("约你")
    print("约我")
    print("约他")
    return "美女一枚"
girl = yue()
print(girl) # 美女一枚

结果:

约你
约我
约他
美女一枚

 
  


函数的返回值可以有多个结果
def yue():
    print("约你")
    print("约我")
    print("约他")
    return "美女一枚", "萝莉一枚"
girl = yue()
print(type(girl)) # tuple
  总结:
  1.遇到return,此函数结束,函数后面的东西将不再执行
  2.return 返回值
  关于返回值:
  如果return什么都不写 或者 干脆不写return,那么返回的就是None
  如果return后面写了一个值,则调用者可以接收一个结果
  如果return后面写了多个结果,则调用者可以接收一个元组(tuple)==不可变==,调用者可以直接解构成多个变量


三、函数的参数

参数:函数在调用的时候指定具体的一个变量的值,就是参数
语法:
def 函数名(参数列表):
函数体
代码改一下:
def yue(chat):
    print("拿出手机")
    print("打开"+chat)
    print("找个漂亮的妹子")
    print("约不约")
yue("陌陌")
yue("微信")
yue("探探")

结果: 拿出手机 打开陌陌 找个漂亮的妹子 约不约 拿出手机 打开微信 找个漂亮的妹子 约不约 拿出手机 打开探探 找个漂亮的妹子 约不约
  

def yue(chat): # chat 形参
    print("拿出手机")
    print("打开"+chat)
    print("找个漂亮的妹子")
    print("约不约")
yue("陌陌") # 实参
len("字符串") # "字符串"在这里就是实参
print("麻花藤") # "麻花藤"就是实参




关于参数:
  1.形参
  写在函数声明的位置的变量叫形参,形式上的一个完整,表示这个函数需要xxx
  1.1位置参数
  1.2默认值参数
  1.3混合 位置 默认值
  注意, 必须先声明位置参数, 才能声明默认值参数
   1.4动态传参,*args, **kwargs
   2.实参
   在函数调用的时候给函数传递的值,叫实参,实际执行的时候给你函数传递的信息,表示给函数xxx
   2.1位置参数
   2.2关键字参数
   2.3混合参数
   注意: 在使用混合参数的时候, 关键字参数必须在位置参数后面
   顺序:位置, 关键字
   3.传参
   给函数传递信息的时候将实际参数交给形式参数的过程被称为传参。


实参的分类:
1. 位置参数. 按照位置。 给形参赋值
2. 关键字参数. 按照形参的名字给参数赋值
3. 混合参数, 位置参数必须放在前面。 关键字参数放后面

def chi(good_food, no_good_food, drink):
    print("我要吃",good_food, no_good_food, drink)

# chi("大米饭", "冰峰", "炸鸡")
# chi(drink="哇哈哈", no_good_food="薯条", good_food="盖浇饭")
chi("小米饭", "辣条", drink="可乐")

形参的分类(3大类)
1. 位置参数 按照位置来声明形参
2. 默认值参数, 当给参数传递值的时候。 默认值不起作用, 不给值。 默认值起作用. 保证你至少有个值能用
顺序: 位置参数必须放在前面。 默认值参数必须放在后面

def regist(name,sex="", age=18): # 语法上不允许
    print(name, age, sex)

regist("刘伟", 22)
regist("李铁帅", 27)
regist("高晓燕", 18, "")
regist("李铁帅", 27)
regist("李铁帅", 27)
regist("李铁帅", 27)
regist("李铁帅", 27)
regist("李铁帅", 27)
函数:对功能或者动作的封装
登陆验证
def login(username, password):
    if username == 'alex' and password == "123":
        return True
    else:
        return False

# 使用场景
name = input("请输入你的账号:")
pws = input("请输入你的密码:")
if login(name, pws):
    print("进入刘伟的空间")
else:
    print("用户名或密码错误, 请重新登陆!")
f(x) = x + 1
f(3) = 3 + 1 = 4
def f(x):
    return x + 1
print(f(2))

s = "你好啊我叫塞利亚"
print(len(s))

def my_len(s):
    count = 0
    for el in s:
        count+=1
    return count
print(my_len(s))
 
原文地址:https://www.cnblogs.com/xiaomai-rhce/p/10368859.html