一个空间可以放几个网站,seo排名优化哪家好,汕头网站设计价格,北京公司网站建设服务一、初识函数
1、函数的作用
2、函数的组成
函数#xff08;Function#xff09;能实现的功能从简单到复杂#xff0c;各式各样#xff0c;但其本质是相通的#xff0c;我们可以看作成三个部分。
3、定义和调用函数
def math(x):
y 3*x 5
return y
第1行#xff1a;def…一、初识函数
1、函数的作用
2、函数的组成
函数Function能实现的功能从简单到复杂各式各样但其本质是相通的我们可以看作成三个部分。
3、定义和调用函数
def math(x):
y 3*x 5
return y
第1行def的意思是定义(define)math是【函数名】自己取的再搭配一个英文括号和冒号括号里面的x是参数参数名也是自己取。
第2行def下一行开始缩进的代码就是函数要实现的功能也叫【函数体】。这里的功能就是根据x计算出一个值y。
第3行return语句是返回的意思可以指定函数执行完毕后最终会返回什么值或表达式否则计算机是无法判断出函数最终要输出什么结果的。
# 函数名1. 名字最好能体现函数的功能一般用小写字母和单下划线、数字等组合
# 2. 不可与内置函数重名内置函数不需要定义即可直接使用
def math(x):
# 参数根据函数功能括号里可以有多个参数也可以不带参数命名规则与函数名相同
# 规范括号是英文括号后面的冒号不能丢
y 3*x 5
# 函数体函数的执行过程体现函数功能的语句要缩进一般是四个空格
return y
# return语句后面可以接多种数据类型如果函数不需要返回值的话可以省略
二、函数的进阶使用
1、参数类型
深夜食堂营业记深夜食堂开张
#直接运行代码即可
def opening():
print(总有一种味道能温暖你)
print(深夜食堂正式开业啦)
print(欢迎来自五湖四海的你前来品尝!)
opening()
这里定义了一个opening()函数但是括号里没有带参数原因是这个函数的功能是打印出固定的三句话不需要参数的参与。
在开业初期为了吸引人流你采取的策略是顾客可以任意点菜。但因为人手不足所以只能为每个人提供一份开胃菜和一份主食。如果写成函数的形式这个函数就会有两个参数。
用appetizer和course来表示开胃菜和主食 直接运行下面的代码就好。
def menu(appetizer, course): #注意此处有了两个参数分别表示开胃菜和主食
print(一份开胃菜 appetizer)
print(一份主食 course)
menu(话梅花生,牛肉拉面)
这里的话梅花生和牛肉拉面是对应参数的位置顺序传递的所以appetizer和course被叫作【位置参数】注意位置参数的概念当有多个参数的时候我们就必须按照顺序和数量传递这也是最常见的参数类型。
二、函数的进阶使用
1、参数类型
def menu(appetizer, course):
print(一份开胃菜 appetizer)
print(一份主食 course \n)
#还记得转义字符\n吧表示换行
menu(牛肉拉面,话梅花生)
menu(话梅花生,牛肉拉面)
#如果采用下面这种形式传递就不需要理会参数位置
menu(course 牛肉拉面, appetizer 话梅花生)
在这个例子里也不需要return语句原因是这个函数直接在屏幕打印出内容不需要返回值。事实上没有return语句的函数Python也会在末尾隐性地加上return None即返回None值。
【不定长参数】即传递给参数的数量是可选的、不确定的。
它的格式比较特殊是一个星号*加上参数名它的返回值也比较特殊我们来看看下面的例子。
(烤鸡翅, 烤茄子, 烤玉米)我们用type()函数可以知道这种数据类型叫作元组(tuple).
元组的写法是将数据放在小括号()中它的用法和列表用法类似主要区别在于列表中的元素可以随时修改但元组中的元素不可更改。
我们最熟悉的print()函数它完整的参数其实是长这样的
print(*objects, sep , end \n, file sys.stdout, flush False)
可以看到第一个参数objects带了*号为不定长参数——这也是为什么print()函数可以传递任意数量的参数。其余四个为默认参数我们可以通过修改默认值来改变参数对比一下下列代码的输出结果。
print(金枪鱼, 三文鱼, 鲷鱼)
print(金枪鱼, 三文鱼, 鲷鱼, sep )
# sep控制多个值之间的分隔符默认是空格
print(金枪鱼, 三文鱼, 鲷鱼, sep , end ?)
# end控制打印结果的结尾默认是换行)
2、返回多个值
函数不仅可以支持输入多个参数而且也可以同时输出多个值。
import random
#引入random模块
appetizer [话梅花生,拍黄瓜,凉拌三丝]
def coupon(money):
if money 5:
a random.choice(appetizer)
return a
elif 5 money 10:
b random.choice (appetizer)
return b, 溏心蛋
print(coupon(3))
print(coupon(6))
可以看到要返回多个值只需将返回的值写在return语句后面用英文逗号隔开即可。
元组和列表一样可以通过索引来提取当中的某个元素。
另外一种方式我们也可以同时定义多个变量来接收元组中的多个元素看最后四行代码直接运行即可
三、多个函数间的配合
当多个函数同时运行时就涉及函数中一个非常重要的概念 —— 变量作用域。
1、变量作用域
程序中的变量并不是在哪个位置都可以被使用的使用权限决定于这个变量是在哪里赋值的。关于这个概念目前我们只需要掌握下面两点即可
第一点一个在函数内部赋值的变量仅能在该函数内部使用局部作用域它们被称作【局部变量】如cost()函数里的variable_cost。
第二点在所有函数之外赋值的变量可以在程序的任何位置使用全局作用域它们被称作【全局变量】如第一行的rent。
那要怎么解决“局部变量”和”全局变量“之间的矛盾呢
第一种方法最取巧把局部变量都放在函数外变成全局变量。
第二种方法利用global语句它可以将局部变量声明为全局变量
global语句一般写在函数体的第一行它会告诉Python“我希望variable_cost是个全局变量所以请不要用这个名字创建一个局部变量”。所以sum_cost()函数内部现在可以直接使用声明后的全局变量variable_cost。
2、函数的嵌套
函数的嵌套我们并不陌生最简单的例子就是print(len(我和你))这里就是print()嵌套了len()Python会先执行len()函数得到一个返回值再由print()打印出来。