(CS61A)Homework 1: Variables Functions, Control

刚开始的写CS61A作业:

OK程序都不知道在哪,自己开个源文件写(后来才发现要在网站作业下载)

Q2: A Plus Abs B

Fill in the blanks in the following function for adding a to the absolute value of b, without calling abs. You may not modify any of the provided code other than the two blanks.

from operator import add, subdef a_plus_abs_b(a, b):"""Return a+abs(b), but without calling abs.>>> a_plus_abs_b(2, 3)5>>> a_plus_abs_b(2, -3)5>>> # a check that you didn't change the return statement!>>> import inspect, re>>> re.findall(r'^\s*(return .*)', inspect.getsource(a_plus_abs_b), re.M)['return h(a, b)']"""if b >= 0:h = _____else:h = _____return h(a, b)


分析:要求返回一个函数,以实现abs的功能

实现:既然要返回h.那么h就需要是函数

(又因为我们只能在横线修改,故观察题头的add sub函数)

答案就呼之欲出了

from operator import add, subdef a_plus_abs_b(a, b):"""Return a+abs(b), but without calling abs.>>> a_plus_abs_b(2, 3)5>>> a_plus_abs_b(2, -3)5>>> # a check that you didn't change the return statement!>>> import inspect, re>>> re.findall(r'^\s*(return .*)', inspect.getsource(a_plus_abs_b), re.M)['return h(a, b)']"""if b >= 0:h = addelse:h = subreturn h(a, b)

Q3: Two of Three

Write a function that takes three positive numbers as arguments and returns the sum of the squares of the two smallest numbers. Use only a single line for the body of the function.

def two_of_three(x, y, z):"""Return a*a + b*b, where a and b are the two smallest members of thepositive numbers x, y, and z.>>> two_of_three(1, 2, 3)5>>> two_of_three(5, 3, 1)10>>> two_of_three(10, 2, 8)68>>> two_of_three(5, 5, 5)50>>> # check that your code consists of nothing but an expression (this docstring)>>> # a return statement>>> import inspect, ast>>> [type(x).__name__ for x in ast.parse(inspect.getsource(two_of_three)).body[0].body]['Expr', 'Return']"""return _____

Hint: Consider using the max or min function:

>>> max(1, 2, 3)
3
>>> min(-1, -2, -3)
-3

 

def two_of_three(x, y, z):"""Return a*a + b*b, where a and b are the two smallest members of thepositive numbers x, y, and z.>>> two_of_three(1, 2, 3)5>>> two_of_three(5, 3, 1)10>>> two_of_three(10, 2, 8)68>>> two_of_three(5, 5, 5)50>>> # check that your code consists of nothing but an expression (this docstring)>>> # a return statement>>> import inspect, ast>>> [type(x).__name__ for x in ast.parse(inspect.getsource(two_of_three)).body[0].body]['Expr', 'Return']"""return min(x*x+y*y,x*x+z*z,y*y+z*z)

Q4: Largest Factor

Write a function that takes an integer x that is greater than 1 and returns the largest integer that is smaller than x and evenly divides x.

def largest_factor(x):"""Return the largest factor of x that is smaller than x.>>> largest_factor(15) # factors are 1, 3, 55>>> largest_factor(80) # factors are 1, 2, 4, 5, 8, 10, 16, 20, 4040>>> largest_factor(13) # factor is 1 since 13 is prime1""""*** YOUR CODE HERE ***"

Hint: To check if b evenly divides a, you can use the expression a % b == 0, which can be read as, "the remainder of dividing a by b is 0."

def largest_factor(x):"""Return the largest factor of x that is smaller than x.>>> largest_factor(15) # factors are 1, 3, 55>>> largest_factor(80) # factors are 1, 2, 4, 5, 8, 10, 16, 20, 4040>>> largest_factor(13) # factor is 1 since 13 is prime1""""*** YOUR CODE HERE ***"n=x-1while n>0:if x%n==0:return nn -= 1

 

Q5: If Function vs Statement

Let's try to write a function that does the same thing as an if statement.

def if_function(condition, true_result, false_result):"""Return true_result if condition is a true value, andfalse_result otherwise.>>> if_function(True, 2, 3)2>>> if_function(False, 2, 3)3>>> if_function(3==2, 3+2, 3-2)1>>> if_function(3>2, 3+2, 3-2)5"""if condition:return true_resultelse:return false_result

Despite the doctests above, this function actually does not do the same thing as an if statement in all cases. To prove this fact, write functions condtrue_func, and false_func such that with_if_statement prints the number 47, but with_if_function prints both 42 and 47.

def with_if_statement():""">>> result = with_if_statement()47>>> print(result)None"""if cond():return true_func()else:return false_func()def with_if_function():""">>> result = with_if_function()4247>>> print(result)None"""return if_function(cond(), true_func(), false_func())def cond():"*** YOUR CODE HERE ***"def true_func():"*** YOUR CODE HERE ***"def false_func():"*** YOUR CODE HERE ***"

Hint: If you are having a hard time identifying how an if statement and if_function differ, consider the rules of evaluation for if statements

def with_if_function():""">>> result = with_if_function()4247>>> print(result)None"""return if_function(cond(), true_func(), false_func())def cond():"*** YOUR CODE HERE ***"return Falsedef true_func():"*** YOUR CODE HERE ***"print(42)def false_func():"*** YOUR CODE HERE ***"print(47)

 and call expressions.

 

Q6: Hailstone

Douglas Hofstadter's Pulitzer-prize-winning book, Gödel, Escher, Bach, poses the following mathematical puzzle.

  1. Pick a positive integer x as the start.
  2. If x is even, divide it by 2.
  3. If x is odd, multiply it by 3 and add 1.
  4. Continue this process until x is 1.

The number x will travel up and down but eventually end at 1 (at least for all numbers that have ever been tried -- nobody has ever proved that the sequence will terminate). Analogously, a hailstone travels up and down in the atmosphere before eventually landing on earth.

Breaking News (or at least the closest thing to that in math). There was a recent development in the hailstone conjecture last year that shows that almost all numbers will eventually get to 1 if you repeat this process. This isn't a complete proof but a major breakthrough.

This sequence of values of x is often called a Hailstone sequence. Write a function that takes a single argument with formal parameter name x, prints out the hailstone sequence starting at x, and returns the number of steps in the sequence:

def hailstone(x):"""Print the hailstone sequence starting at x and return itslength.>>> a = hailstone(10)105168421>>> a7""""*** YOUR CODE HERE ***"

Hailstone sequences can get quite long! Try 27. What's the longest you can find?

Watch the hints video below for somewhere to start: 

Use Ok to test your code:

python3 ok -q hailstone
def hailstone(x):"""Print the hailstone sequence starting at x and return itslength.>>> a = hailstone(10)105168421>>> a7""""*** YOUR CODE HERE ***"n=0while x>0:print("%d"%x)n+=1if x==1:return nif x%2==0:x/=2else:x=x*3+1return n

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/191383.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

栈实现队列,力扣

题目地址: 232. 用栈实现队列 - 力扣(LeetCode) 难度:简单 今天刷栈实现队列,大家有兴趣可以点上看看题目要求,试着做一下。 题目: 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支…

一篇带你串通数据结构

文章目录 导论数据结构的定义数据结构在计算机科学中的重要性为什么学习数据结构很重要 1、基本概念1.1、数据、数据元素和数据项的概念1.2、数据对象与数据结构的关系1.3、逻辑结构与物理结构 2、线性结构2.1、数组2.2、链表2.3、栈2.4、队列 3、非线性结构3.1、树3.2、图 4、…

prometheus|云原生|kubernetes内部安装prometheus

架构说明: prometheus是云原生系统内的事实上的监控标准,而kubernetes集群内部自然还是需要就地取材的部署prometheus服务了 那么,prometheus-server部署的方式其实是非常多的,比如,kubesphere集成方式,h…

Linux ____04、文件内容查看(命令),网络配置(命令),软硬链接(命令)

文件内容查看,软硬链接 一、文件内容查看1、cat 由第一行开始显示文件内容,用来读文章,或者读取配置文件啊,都使用cat名2、tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!3、显示的时候&#xff0c…

CGAL的三维曲面网格生成

1、介绍 此程序包提供了一个函数模板,用于计算三角网格,以近似表面。 网格化算法要求仅通过一个能够判断给定线段、直线或射线是否与曲面相交,并且如果相交则计算交点的oracle来了解待网格化的表面。这一特性使该软件包具有足够的通用性&…

子集(回溯、图解)

78. 子集 - 力扣(LeetCode) 题目描述 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 样例输入 示例 1:…

深入理解同源限制:网络安全的守护者(下)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

VMware安装Debian12.2作为服务器(无桌面)

[TOC]VMware安装Debian12.2作为服务器(无桌面) 下载Debian系统 官方网站:https://www.debian.org/index.zh-cn.html 创建新的虚拟机 打开VMware Workstation,点击创建新的虚拟机 向导虚拟机类型选择 一般我会选择典型&…

C#网络编程(System.Net命名空间和System.Net.Sockets命名空间)

目录 一、System.Net命名空间 1.Dns类 (1)示例源码 (2)生成效果 2.IPAddress类 (1)示例源码 (2)生成效果 3.IPEndPoint类 (1) 示例源码 &#xff0…

Unity Image - 镜像

1、为什么要使用镜像 在游戏开发过程中,我们经常会为了节省 美术图片资源大小,美术会将两边相同的图片进行切一半来处理。如下所示一个按钮 需要 400 * 236,然而美术只需要切一张 74*236的大小就可以了。这样一来图集就可以容纳更多的图片。…

基于spring boot电子商务系统

一、 系统总体结构设计 (一) 功能结构图 图1-1 后台管理子系统 图1-2 电子商务子系统功能结构图 (二) 项目结构目录截图(例如下图) 图 1-3 系统目录图 (三) 系统依赖截图 图 1-2 所有依赖截图 (四) 配置文件 1、 全局配置文件 2、 其他配置文…

Leetcode226. 翻转二叉树

文章目录 题目介绍题目分析解题思路边界条件:节点为空时返回空子问题:交换左右子节点 整体代码 题目介绍 题目分析 题目要求我们将树中每个节点的左右子节点全部交换,最后返回交换后的树的根节点。 解题思路 这题是比较常见的递归,直接找边…

Simple_SSTI_1-WEB-bugku-解题步骤

——CTF解题专栏—— 声明:文章由作者weoptions学习或练习过程中的步骤及思路,非正式答案,仅供学习和参考。 题目信息: 题目:Simple_SSTI_1 作者:valecalida 提示:无 场景: 解题…

蓝桥杯day03——二进制间距

1.题目 给定一个正整数 n,找到并返回 n 的二进制表示中两个 相邻 1 之间的 最长距离 。如果不存在两个相邻的 1,返回 0 。 如果只有 0 将两个 1 分隔开(可能不存在 0 ),则认为这两个 1 彼此 相邻 。两个 1 之间的距离…

oops-framework框架 之 创建项目(二)

引擎: CocosCreator 3.8.0 环境: Mac Gitee: oops-game-kit 构建 本篇博客将使用oops-game-kit 构建一个新的开发项目, 关于 oops-framework 框架的了解,可参考上篇博客: oops-framework框架 之 初始了解(一) 大概…

力扣题:字符串的反转-11.24

力扣题-11.24 [力扣刷题攻略] Re:从零开始的力扣刷题生活 力扣题1:151. 翻转字符串里的单词 解题思想:保存字符串中的单词即可 class Solution(object):def reverseWords(self, s):""":type s: str:rtype: str"&quo…

Qt路径和Anaconda中QT路径冲突(ubuntu系统)

最近做一个项目需要配置QT库,本项目配置环境如下: Qt version 5 Operating system, version and so on ubuntu 20.04 Description 之前使用过anaconda环境安装过QT5,所以在项目中CMakeLists文件中使用find_package时候,默认使用An…

【Linux】ubuntu配置SSH服务

要在Ubuntu上配置SSH服务,首先安装ssh-server sudo apt install openssh-server 安装完成后,可以检查一下是否安装成功 systemctl status ssh vim /etc/ssh/sshd_config 此时ubuntu就可以被远程连接工具连接了,如果我们想配置关于SCP服务允…

JVM运行时数据区域

文章目录 内存结构程序计数器(寄存器)虚拟机栈局部变量表两类异常状况 线程运行诊断 本地方法栈堆方法区运行时常量池串池(StringTable)字符串的拼接串池的位置StringTable垃圾回收StringTable性能调优 直接内存 内存结构 程序计…

(三)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)

一、无人机模型简介: 单个无人机三维路径规划问题及其建模_IT猿手的博客-CSDN博客 参考文献: [1]胡观凯,钟建华,李永正,黎万洪.基于IPSO-GA算法的无人机三维路径规划[J].现代电子技术,2023,46(07):115-120 二、Tiki-taka算法(TTA&#xf…