HW 01 Notes

HW 01 Notes

主要内容

  1. print 和 return的区别
  2. while loop的基本应用
  3. Higher-order function的基本应用

print vs return

print('big') --> big
return 'big' --> 'big'
print会忽略引号,但return不会

Q1: A plus Abs B

难度:⭐
要点:
只需要知道当b是负数时,其绝对值为-b即可
在这里插入图片描述

Q2: Two of Three
难度:⭐⭐
要点:
用max找出三个数中最大的一个数,然后return剩下两个数的平方之和
思路:
没必要执着于找到到底哪两个数是较小的然后分别平方。可以直接先算出三个数的平方之和再将最大的那个数的平方减去,剩下的自然而然就是我们要找的答案
在这里插入图片描述

Q3: Largest Factor

难度:⭐⭐半
要点:
如何用while loop找到最大的factor
题目乍一看好像挺难的,但其实只要思路是对的,code方面其实挺简单的
思路:
既然要求找最大的factor,那么最方便的方式就是从最大的有可能的数开始找(这里为比较懒,就直接从n-1开始了),然后一路往下找,如果最后还没找到能够整除的,那么就return 1(因为所有数字肯定都能够整除1)
在这里插入图片描述
**

Q4: Hailstone

**
难度:⭐⭐⭐⭐
要点:
列出一个神奇数列,并且记录数列的最终长度
一般是这种看上去很新奇的名字就比较难。。。
给四个星因为已经算这一次HW里面比较难的了
思路:
因为最后需要return数列的长度,所以我们需要create一个variable count that tracks the count as we continue calculate and form the list。目前为止学过的东西不允许我们等数列算完再数长度,所以只能一边算一边记录(count+=1
在这里插入图片描述

Q5: Product Q6: Accumulate

难度:⭐⭐⭐
要点:
用while loop实现连乘或者其他连续计算数列之和或之积
熟练运用while loop
因为这两题思路完全一样所以放在一起
思路:
数列一般都是index从小到大,所以我们也是从小打到的顺序iterate,把每一次计算出来的term加到total里面去。这里的一个小陷阱是如果是求和,那么total一般都是从0开始;但是!如果是求积,那么total要从1开始(不然谁乘以0最后都会得到0)如果是accumulate则不需要考虑base,因为base已经是given的
在这里插入图片描述

**

Q7: If Function vs If Statement

**
难度:⭐⭐⭐⭐
要点:
明白if function(takes in a condition function, and two function calls)和if statement (takes in no argument, function calls are inside the function which are already defined)之间的区别;换句话说,明白pass in function calls 和pass in function names的区别(是完全不一样的结果)
这道题主要搞脑子,实际code非常简单
思路:
当function calls作为inputs被pass in到另外一个function的时候,python会先evaluate这些function calls before actually passing them into the intended function (python的evaluate的顺序是先evaluate arguments再将它们都代入到真正的function中)所以当(cond(),true_func() 和 false_func())被pass in的时候,无论cond()是什么,true_func()和false_func()都会被先evaluate,然后它们的return values将会被代入到真正的function中。因为true_func() & false_func()都是print statements,它们return value都是None,所以最后不会显示在interpreter当中(unless 还有外面还有一个print,强行print None)只有Welcome to和61A被真正print出来(是evaluate true_func & false_func时候的side effect)
所以最后真正被pass到function里面去的其实是(cond(), None, None)这也就是为什么最后return的时候啥也没有
这道题的重点是,在执行return if_function(c(), t(), f())时,解释器会首先计算3个函数,并将函数返回值作为参数传入if_function,c()的返回值不会影响t()f()的执行。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值