标签:练习 结合 是你 bin 变量 根据 com 提示信息 限制
一 函数的调用
TypeError
的错误,abs()
有且仅有1个参数,但给出了两个:TypeError
的错误,并且给出错误信息:str
是错误的参数类型:2 参数传递
def func1(*args): … #省略代码块 return … #省略return的值 a = func1(x, y, z) #x,y,z表示实参
def func2(**args): … #省略代码块 return … #省略return的值 a = func1(x=1, y=2, z=3) #x,y,z表示实参
三 函数作用域
1 定义:作用域是指对某一变量和方法具有访问权限的代码空间
2 根据作用域对函数内部的变量分类:
3 全局变量和局部变量间转换和被对方调用的具体规则
四 代码及执行结果
1 代码文件ex19.py:
# 在用def关键字定义函数时函数名后面括号里的变量称作为形式参数。实参全称为实际参数,在调用函数时提供的值或者变量称作为实际参数 # 定义一个函数:cheeses_and_crackers,函数的功能是打印四条语句,该函数有两个形式参数:cheese_count,boxes_of_crackers def cheeses_and_crackers(cheese_count,boxes_of_crackers): print(f"You have {cheese_count} cheeses!") print(f"You have {boxes_of_crackers} boxes of crackers!") print("Man that‘s enough for a party!") print("Get a blanket.\n") # 打印提示信息,并调用刚才定义的函数cheeses_and_crackers,此时的实际参数是数字 print("We can just give the function numbers directly:") cheeses_and_crackers(20,30) #定义两个变量amount_of_cheese,amount_of_crackers,在函数调用过程中把这两个变量当作实参 print("OR, we can use variables from our script:") amount_of_cheese = 10 amount_of_crackers = 50 cheeses_and_crackers(amount_of_cheese,amount_of_crackers) # 函数调用过程中实参也可以是表达式,该表达中只有数字 print("We can even do math inside too:") cheeses_and_crackers(10 + 20,5 + 6) # 函数调用过程中实参也可以是表达式,该表达中可以包括变量 print("And we can combine the two,variables and math:") cheeses_and_crackers(amount_of_cheese + 100,amount_of_crackers + 1000)
这个练习展示了我们可以给函数 cheese_and_crackers 赋值的几种不同的方式,我们可以直接给它数字,或者变量,亦或是数学运算,甚至是数学运算和变量的结合。
2 执行结果
PS E:\3_work\4_python\2_code_python\02_LearnPythonTheHardWay> python ex19.py We can just give the function numbers directly: You have 20 cheeses! You have 30 boxes of crackers! Man that‘s enough for a party! Get a blanket. OR, we can use variables from our script: You have 10 cheeses! You have 50 boxes of crackers! Man that‘s enough for a party! Get a blanket. We can even do math inside too: You have 30 cheeses! You have 11 boxes of crackers! Man that‘s enough for a party! Get a blanket. And we can combine the two,variables and math: You have 110 cheeses! You have 1050 boxes of crackers! Man that‘s enough for a party! Get a blanket.
五 一些问题
1 运行一个函数怎么可能有 10种不同的方式? 爱信不信,理论上讲,任何函数都有无数种调用方式。看看你对于函数、变量以及用户输入的创造力有多强2 有没有什么方法能分析函数是如何运行的,以帮助我更好地理解它? 有很多方法,但是你先试试给每行加注释这种方式。其他方法包括大声把代码读出来,或者把代码打印出来然后在上面画图,来展示它是怎么运行的。
3 如果我想问用户关于 cheese 和和 crackers 的数字呢?你需要用 int() 来把你通过 input() 获取的内容转化成数值。
4 在函数中创建 amount_of_cheese 这个变量会改变 cheese_count 这个变量吗? 不会的,这些变量是相互独立并存在于函数之外的。它们之后会传递给函数,而且是“暂时版”,只是为了让函数运行。当函数退出之后,这些暂时的变量就会消失,其他一切正常运行。接着往下学,你会慢慢明白的。
5 像 amount_of_cheese 这样的全局变量( global variables )跟函数变量同名的话是不是不太好?是的,如果这样的话,你就不知道你说的到底是哪个变量了。不过你有时候可能不得不用同样的名字,或者你可能不小心同名了,不管怎么样,尽量避免这种情况。
6 一个函数里包含的参数有数量限制吗? 这取决于 Python 的版本以及你的电脑,但是这个数量其实相当大。实践中一个函数包含 5 个参数为宜,再多就比较难用了。
7 你能在一个函数里面调用一个函数吗? 可以,在之后的练习里你会创建一个小游戏,到时候就会用到这个。
标签:练习 结合 是你 bin 变量 根据 com 提示信息 限制
原文地址:https://www.cnblogs.com/luoxun/p/13236910.html