- 博客(40)
- 收藏
- 关注
原创 CS61A:STRING REPRESENTATION
顺便说一句,我们正在开发一个对复数执行算术运算的系统,作为使用泛型运算的程序的一个简单但不切实际的示例。复数类型实际上内置于 Python 中,但在此示例中,我们将实现自己的类型。默认情况下,用户定义类的对象被视为 true,但可以使用特殊的 __bool__ 方法来覆盖此行为。Python 规定所有对象都应该产生两种不同的字符串表示形式:一种是人类可解释的文本,另一种是 Python 可解释的表达式。在 Python 中,函数是一等对象,因此它们可以作为数据传递,并且具有与任何其他对象一样的属性。
2025-04-16 17:48:54
548
原创 CS61A:INHERITANCE
b.z是b的一个实例(self.f(1), 不是一个整数, 是一个函数调用),b.z.z 是c的一个实例, b.z.z.z是1, b.z.z.z.z是1.z,错误。
2025-04-14 18:31:33
104
原创 CS61A:OBJECTS
我们可以用一个点来运用class中带有的method,list.append()object是class的一个特定的定义。
2025-04-12 15:40:34
99
原创 CS61A:MUTABILITY
对于可变数据,如list和字典, list1 = list2, list2发生变化, list1也会发生变化,因为本质上是同一个object,只是名字不一样。tuple是不可变的值,可以作为dictionay的key(列表不可以,包括在tuple中的list)元组tuple,任何用逗号隔开的都可以叫tuple,比如说:2, ---> (2,)对于不可变数据,如integer和string, a = b, b发生变化,a不会发生变化。is,is not来判断是否是同一个object。
2025-04-08 19:53:27
116
原创 配置VScode时的一些注意点
注意一开始运行文件可以直接运行,但如果要调试文件要去创建launch文件。如果设置断点调试后,要先终止调试再重新开始。照这样修改launch.json。要找这样修改task.json。接下来是mingw的下载地址。
2025-04-05 23:53:26
318
原创 CS61A:DATA ABSTRACTION
在每一层抽象中,特定的函数充当抽象屏障,这些函数由较高层调用,并使用较低层的抽象实现。例如,计算有理数的平方时,使用已经实现的乘法函数,避免涉及有理数的具体实现细节。数据抽象的本质与函数抽象类似,我们通常不关注数据具体的值,而是使程序在抽象上运行,总而言之,数据抽象将数据实现方式和具体的细节分开。尽管如此,这些函数足以在我们的程序中表示成对。例如,我们要表示有理数,用传统表示(整型相除)会损失一部分精度,所以用分子,分母表示,这个有理数实现有缺陷,就是不能得到最简比,调用gcd,不说了。
2025-04-02 21:03:05
90
原创 CS61A:CONTAINER
s = {'A': 1,'B': 2}就是一个字典,我们可以通过key的值查找value的值,反之则不行。s[1:2] 就是从索引为1的元素到索引为2的元素的部分,也就是索引为1的元素,符合前闭后开。python里的数据类型,包含key和value的pair。对于list, s = [1, 2, 3, 4]' ':里面如果存放单引号会发生字符串的分裂。s[1:]就是从1到最后一个元素。" ":里面可以存放'单引号。比如说s['A']的值时1。s[:2] 就是从0到1。一个key对应着一个值。
2025-04-02 11:10:02
208
原创 CS61A:SEQUENSE
从中可以知道list和sequence的特性,对于一个list,我们可以知道索引-1是最后一个元素,-2是倒数第二个元素。
2025-04-01 13:01:09
59
原创 CS61A:RECURSION
很简单,不多说,不过要注意每一次调用sum_digits的frame都不一样。这个也是简单的,实现判断奇偶数也可以用简单的递归。
2025-03-31 15:02:23
259
原创 CS61A:FUNCTION EXAMPLES
就拿最后一个式子来说,print函数的参数是delay(print)()(4),print将输出 delay(print)()(4)的返回值,delay函数被调用,参数为print,输出delayed,而delay(print)()则是调用了delay函数的g函数,返回值是print函数,delay(print)()(4)则是调用了刚刚返回的print函数,输出4,返回None,于是,最外围的print接收到参数None,并打印None,返回None。
2025-03-30 19:29:24
403
原创 CS61A:LAB2
直接用ai了- 结果:`13`- 解释:在Python中,`and`运算符会返回最后一个"真"值。`True and 13`中,13是最后一个值且为真,所以返回13。- 结果:`0`- 解释:`or`运算符会返回第一个"真"值。`False or 0`中,0是最后一个值且为假,所以返回0。- 结果:`False`- 解释:`not`运算符会返回布尔值的相反值。10是非零数字,在布尔上下文中为True,所以`not 10`返回False。- 结果:`True`
2025-03-30 15:22:15
995
原创 CS61A:ENVIRONMENT/HIGHER-OREDER FUNCTION
需要注意的是局部变量和作用域,以及每个函数都有父环境(parent environment)上面提到过,其实就是简化语句,通常用与表达式。2.nested function嵌套函数。将一个多参数函数转化为一个参数的函数链。1.函数可以作为返回值和函数参数。4.curring(柯里化)
2025-03-30 13:04:11
156
原创 CS61A:DISC1
`race` 函数模拟乌龟和兔子赛跑,乌龟每分钟走 `x` 英尺,兔子每分钟走 `y` 英尺,但兔子每跑 5 分钟就会休息 5 分钟。题目要求找到一对正整数 `x` 和 `y`,使得 `race(x, y)` 函数返回错误的值,或者运行永远无法结束。- 再次调用 `double(x)`,创建另一个框架,绑定 `x = 3`,返回 `6`。- 调用 `double(x)`,创建另一个框架,绑定 `x = 3`,返回 `6`。- **测试 3:** `is_prime(1)`,预期输出:`False`。
2025-03-29 17:02:31
613
原创 CS61A:HW2
LAMBDA函数,适用于表达式,(不可用与循环语句等复杂的语句,只有简短一句),可以使用多个参数,对于参数只是用一次或者临时使用的情况。
2025-03-29 16:22:54
93
原创 Lab01:FUNCTION
def digit(n, k): """Return the digit that is k from the right of n for positive integers n and k. >>> digit(3579, 2) 5 >>> digit(3579, 0) 9 >>> digit(3579, 10) 0 """ return( n // pow(10, k) % 10) def middle(a, b, c):
2025-03-25 11:09:12
781
原创 CS61A:HIGHER ORDER FUNCTION
在自定义的if语句中,看似是根据if-else的顺序优先计算,但因为是一个函数,所以实际上 是一起计算的,有时候就会报错。可以分开来求,f = make_adder(1), f(2) == 3。这可以看作一个形式函数(不知道是不是可以这样理解)自定义函数实现if else 语句集合在一句话。在函数里面定义一个函数。
2025-03-25 10:08:52
193
原创 CS61A:CONTROL
python里面的除法,/ == truediv , // == floordiv(整型)if-else语句,其中elif表示c++中的else if。python的交互式命令行(REPL)
2025-03-21 22:57:35
144
原创 CS61A:FUNCTION-EN
在python中,print函数得到输入后,输出的是None相当于NULL(C++),我们所能看到的显示在屏幕上的输出是side effort,不是一个值,而是一个行为,有意思的是,print(None)所显示的就是None。函数是一个机器,得到输入后,经过一系列运算,得到结果并存储。
2025-03-20 15:48:59
261
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人