What & How & Why

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
cs:fundamental:cs61a:week_1 [2023/09/26 04:36] – [Local Assignment] codingharecs:fundamental:cs61a:week_1 [2023/10/27 05:54] (当前版本) – [Conditional statement] codinghare
行 294: 行 294:
     <suite>     <suite>
 </code> </code>
 +  * 首先会评估 header
 +  * 某个 header 为 true, 则执行该 Header 下的 suite,其他的 suite 将会被跳过。
 ===Iteration=== ===Iteration===
 <code py> <code py>
行 300: 行 302:
 </code> </code>
 ===Testing=== ===Testing===
 +==Assertions==
 +python 中可以使用 ''assert'' statement 做验证。如果 ''assert'' 返回的对象为 ''True'',那么什么也不会发生。否则,错误会被抛出:
 +<code py>
 +>>> def fib_test():
 +        assert fib(2) == 1, 'The 2nd Fibonacci number should be 1'
 +        assert fib(3) == 1, 'The 3rd Fibonacci number should be 1'
 +        assert fib(50) == 7778742049, 'Error at the 50th Fibonacci number'
 +</code>
 +==Doctest==
 +//docstring// 中可以包含 test case,用于测试:
 +<code py>
 +>>> def sum_naturals(n):
 +        """Return the sum of the first n natural numbers.
  
 +        >>> sum_naturals(10)
 +        55
 +        >>> sum_naturals(100)
 +        5050
 +        """
 +        total, k = 0, 1
 +        while k <= n:
 +            total, k = total + k, k + 1
 +        return total
 +        
 +>>> from doctest import testmod
 +>>> testmod()
 +TestResults(failed=0, attempted=2)
 +</code>