第三章:函数【Python 让繁琐工程自动化 学习笔记】

3.9 小结

函数是代码逻辑分组的主要方式。因为函数中的变凉存在于它们自己的局部作用域内,所以一个函数中的代码不能直接影响其他函数中变量的值,对于调试代码是很有帮助的。

函数是很好的工具,帮助你组织代码。你可以认为他们是黑盒。他们以参数形式输入,以返回值形式产生输出。他们内部的代码不会影响其他函数中的变量。

3.10 习题

注:删除线文字为我答题时对答案,下面为题目对应参考答案。

  1. 为什么在程序中加入函数会有好处?
    减少复制步骤,可以组织代码,进行逻辑分组。
    函数减少了重复的代码。这让程序更短,更容易阅读,更容易修改。

  2. 函数中的代码在何时执行:在函数定义时还是在函数被调用时。
    函数调用时。

  3. 什么语句创建一个函数
    def 函数名(参数名称)
    def 语句创建(或定义了)一个函数。

  4. 一个函数和一次函数调用有什么区别?
    函数:对目标问题的一个逻辑集合
    函数调用:解决目标问题的动态过程。

    函数包含 def 语句 和 def 子句 中的代码。函数调用让程序执行转到函数内,函数调用求值为该函数的返回值。

  5. Python 程序中有多少全局作用域?多少局部作用域?
    全局作用域:1个
    局部作用域:有几个函数就有几个局部作用域

    在调用函数时,创建了一个全局函数和一个局部作用域。

  6. 当函数调用返回时,局部作用域中的变量发生了什么?
    局部变量被销毁
    函数的返回时,局部作用域销毁,其中所有的变量被遗忘了。

  7. 什么是返回值,返回值可以作为函数的一部分吗?
    函数执行的目标值,可以
    返回值就是函数调用求值的结果。像所有值一样,返回值可以作为表达式的一部分。

  8. 如果函数没有返回语句,对它调用的返回值是什么?
    None
    如果函数没有 return语句,它的返回值就是 None。

  9. 如何强制函数中的一个变量指的是全局变量?
    global 变量名
    Global 语句强制函数中的一个变量引用该全局变量。

  10. None 的数据类型是什么?
    number
    None 的数据类型是 NoneType。

  11. import areallyourpetsnamederic 语句做了什么?
    引入 ** 模块
    import 语句导入了 areallyourpetsnamederic 模块(不是真正的 Python 模块 )。

  12. 如果在名为 spam 的模块中,有一个名为bancon()的函数,在引入 spam 后如何调用它?
    1)若为 import spam
    spam.bacon()

    该函数可以用 spam.bacon()调用。

  13. 如何防止程序在遇到错误时崩溃
    加入异常处理函数
    将可能导致错误的代码行放在一个 try 子句中。

  14. try 子句中发生了什么?except 子句发生了什么?
    可能发生错误的语句
    执行的输出

    可能导致的错误放在 try 子句中。
    发生错误时要执行的代码放在 except 子句中。

小练习

#3.4 关键字参数和 print()
print ('hello',end='')
print ('world')
print('dog','tag','cat',sep = ',')
def spam():
    print (eggs)
spam()
eggs = 4

print(eggs)
#3.8 猜数字
import random
secretNumber = random.randint(1,20)
print('I am thinking of a number between 1 and 20')
#Ask the player to guess 6 times
for guessesTaken in range (1,7):
    print ('take a guess')
    guess = int(input())

    if guess < secretNumber:
        print('Your guess is too low')
    elif guess > secretNumber:
        print('Your guess is too high')
    else:
        break #This condition is the correct guess!
if guess == secretNumber:
    print('Good job!You guessed my number in '+ str(guessesTaken) + ' guesses!')
else:
    print('Nope. The number I was thinking of was ' + str(guessesNumber))       
#3.11 collatz 序列
import sys
def collatz(number):
    print(number)
    if number == 1:
        sys.exit()
    elif number % 2 == 0:
       
        collatz(number//2)        
    else :
        collatz(3*number+1)  
try:
    num = int(input('Enter Number: '))
    collatz(num)
except:
    print('valueError')   

实践项目

猜你喜欢

转载自blog.csdn.net/Gloria_m666/article/details/86772502