问题1

def wears_jacket_with_if(temp, raining):
    """
    >>> wears_jacket_with_if(90, False)
    False
    >>> wears_jacket_with_if(40, False)
    True
    >>> wears_jacket_with_if(100, True)
    True
    """
    "*** YOUR CODE HERE ***"
    if raining or temp < 60:
        return True
    else:
        return False
def wears_jacket(temp, raining):
    "*** YOUR CODE HERE ***"
    return raining or temp < 60

问题2

special_casecase_in_point的调用都返回 12,而对just_in_case的调用返回 19。由于数字 10 满足每个函数中的全部三个条件,因此在just_in_case调用时x变量的值增加了 3 次。如果每个if子句都以一个return语句结尾, 则一系列if语句与使用ifelif组合具有相同的效果。

问题3

def with_if_statement():
    """
    >>> result = with_if_statement()
    61A
    >>> print(result)
    None
    """
    if cond():
        return true_func()
    else:
        return false_func()

def with_if_function():
    """
    >>> result = with_if_function()
    Welcome to
    61A
    >>> print(result)
    None
    """
    return if_function(cond(), true_func(), false_func())

def cond():
    "*** YOUR CODE HERE ***"
    return False
def true_func():
    "*** YOUR CODE HERE ***"
    print("Welcome to")
def false_func():
    "*** YOUR CODE HERE ***"
    print("61A")

函数with_if_function使用了一个调用表达式,它保证先将其所有操作数子表达式求值,然后再将结果作为参数应用于if_function

因此,即使cond返回False,函数true_func也会被调用。当我们调用时true_func,我们打印出Welcome to。然后,当我们调用false_func时,我们也会打印61A

相比之下,如果 cond返回Falsewith_if_statement永远不会调用true_func。因此,我们只会调用false_func打印61A

问题4

这个程序会导致无限循环,因为x总是大于 0,而x / 0永远不会被执行。我们也知道here!永远不会打印,因为在调用function square(x)之前必须求值操作数so_slow(5)

视频

问题5

def is_prime(n):
    """
    >>> is_prime(10)
    False
    >>> is_prime(7)
    True
    """
    "*** YOUR CODE HERE ***"
    if n == 1:
        return True
    else:
        for i in range(2, n):
            if n % i == 0:
                return False
        return True

问题6

def fizzbuzz(n):
    """
    >>> result = fizzbuzz(16)
    1
    2
    fizz
    4
    buzz
    fizz
    7
    8
    fizz
    buzz
    11
    fizz
    13
    14
    fizzbuzz
    16
    >>> result == None
    True
    """
    "*** YOUR CODE HERE ***"
    for i in range(1, n+1):
        if i % 3 == 0 and i % 5 == 0:
            print('fizzbuzz')
        elif i % 3 == 0:
            print('fizz')
        elif i % 5 == 0:
            print('buzz')
        else:
            print(i)

要为从 1 到n的每个数字打印一些内容,我们可以使用循环遍历每个数字,然后使用if-elif-else检查哪些情况适用以确定要打印的内容。

学生应该注意他们if-elif语句的顺序:我们要首先检查是否i可以被 3 和 5 整除,否则如果学生首先检查了 3 的可除性就会输出“fizz”(如果学生首先检查了 5 的可除性则是“buzz”),而不是“fizzbuzz”。

问题7


我们首先把11 % 4求值的结果赋值给x。然后我们绑定yx的当前值(我们可以通过在当前环境图中查找它来确定)。最后,我们想更新x为当前x的值的平方。

视频

问题8

我们首先定义两个函数doubletriple,每个函数都绑定到它们对应的名称。在下一行中,我们将名称hat赋给double引用的函数对象。最后,我们将double名称赋给triple引用的函数对象。

视频

问题9

视频

问题10

视频

最后修改日期: 2021年9月28日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。