Python基础检测:20171105

第一周的预习结束了

效果并不理想,最后的检测也是有个别同学表现还可以.最后一次检测,除了依旧不是放在一个文件里,文件也没有标注作者从而导致我没办法一一回复外,有些问题写的不好意外.基本没什么毛病,摔!

本次问题是以小故事的形式展开并串联的,并没有什么特殊的意思.本人不善言谈,更不善于搭讪.拒撩.

答案与解析

第一题,公式转换,计算误差

# 1. 门前有两棵树,其中一棵是枣树,我每天早上起来都会吃掉原三分之一又一个枣,一个星期刚好吃完,请问我一共吃了几个枣? (循环)def question_1(n=7):from fractions import Fractionx = 0for day in range(n, 0, -1):print("星期", day, "过完后剩下", x, "颗枣")x = (x + 1) /Fraction(2,3) # 使用分数,避免因为数值精度产生误差print("那么,第一天开始的时候就有:", x, "颗枣")

第一题演示结果
这道题的没什么难点,而且每个问题都给出了解题思路.从答题看,该题目主要有两个问题,一个是公式问题,简单来说(列一元方程,未知数转换到公式一侧.)然后没了,要是不会,我也没有办法.这可能不是适不适应我的节奏的问题,可能是适不适合编程的问题.第二,是数值精度的问题,因为问题求解中需要计算小数,而且连乘较多,不使用分数计算会导致误差在连乘过程中不断增加.

第二题,yield关键字

# 2. 另一个树也是枣树,一不小心打落了距离地面三米六一个枣,枣掉在地上,弹了起来,弹起来的距离是下落距离的1/2,,第十次弹起了多高?(用yield)def length(n):l = 3600while n > 0:l = l / 2yield ln -= 1# print(l)def question_2():print(list(length(10))[9])

之前的斐波那契数列已经有过了,不会的话,就反省一下是不是自己偷懒了

第三题,屏幕输入输出

# 3. 我枣吃多了肚子疼去医院看病,护士问我名字和性别对我说,"你好,XX先生/XX女士" (人机交互)def question_3(bl_test=False, name="FontTian", sex='1'):if bl_test:name = input("名字?")sex = input("性别?")else:passif sex in ['男', '1']:sex = '先生'else:sex = '女士'print("你好 ,%s%s" % (name, sex))

以前多次写过的,不会的还是反省一下自己是不是偷懒了吧.语法相对简单,到时我给的提示可能让之前没有留意前两次实例的人混淆……

第四题

我给出的是扩展的写法,使用了exec方法,实现这个

# 4. 医生给我开了药房,我把药方拿给护士小姐姐,拿药,付钱的时候小姐姐需要一个计算器(计算机,加减乘除,exit退出)# 不考虑异常
# def question_4():
while True:x = input("变量1\n")if x == "exit":breaky = input("运算符号\n")z = input("变量2\n")exec("ans = " + x + y + z)import timetime.sleep(3)print(ans)

或者使用choice关键字也可以,这个其实才是最简单一个,因为是choice的教学例子,在各种地方也最为常见,除非没学:

def add(x, y):return x + y
def subtract(x, y):return x - y
def multiply(x, y):return x * y
def divide(x, y):return x / y
print("选择运算:")
print("1、相加")
print("2、相减")
print("3、相乘")
print("4、相除")
choice = input("输入你的选择(1/2/3/4):")
num1 = int(input("输入第一个数字: "))
num2 = int(input("输入第二个数字: "))
if choice == '1':print(num1,"+",num2,"=", add(num1,num2))
elif choice == '2':print(num1,"-",num2,"=", subtract(num1,num2))
elif choice == '3':print(num1,"*",num2,"=", multiply(num1,num2))
elif choice == '4':print(num1,"/",num2,"=", divide(num1,num2))
else:print("非法输入")

第五题

存储文件,老问题了,之前也考过一次,算是复习

# 5. 护士小姐姐温柔又漂亮,所以我和小姐姐要了手机号,我赶紧把手机号存了起来(输入你的手机号,并存入txt文件)def question_5():MP = input("小姑娘,你很漂亮,能留个联系方式吗?\n")  # 突然发现,原来我不会搭讪......with open("/home/fonttian/Data/17_DS_AI/20171103_MP.txt", "w") as f:f.write(MP)

第六题

考逻辑,双层循环解决.

# 6. 回家之后,我摆弄着我的药,我先把他们办成了一个3*4 的矩阵,又变成了4*3 的矩阵,然后又摆了回来def question_6():print("将3*4 矩阵 转化为 4*3 矩阵")martrix = [[1, 2, 3, 4],[5, 4, 6, 2],[9, 10, 12, 15]]print([[row[i] for row in martrix] for i in range(4)])

第七题

# 7. 狗狗在一边看着我,似乎他明白了我是在犹豫,要不要给护士小姐姐打电话,所以狗狗用爪子轻轻地摆弄着我的手机,似乎是在鼓励我
# 于是我拿起手机(调用电话类),输入电话号码(传入参数),彩铃响起,是小星星(屏幕输出小星星,双层循环)"""*************************
"""

还是双层循环,没什么意思.但是比较考逻辑,往往阵亡在逻辑上的人不少
低级程序员看调用,中级程序员看逻辑,高级程序员看数学.

def question_7(n=3):n = 3for i in range(2):for j in range(n):if i == 0:print(" " * (n + 1 - j) + "*" * ((j + 1) * 2 - 1))if j == (n - 1):print(" " + "*" * ((j + 2) * 2 - 1))else:# print(" " * (j) + "*" * ((j + 1) * 2 - 1))print(" " * ((j + 1) + 1) + "*" * ((n - j) * 2 - 1))

第八题

# 8. 然而电话并没有人接,我失望地放下手机.似乎有点饿,于是我打开冰箱
"""
我从上到下依次用我的24k钛合金狗眼扫描冰箱,一共发现了
[1,4,5,2,4,87,32,45,23,56,4,6,9,45,56,5,4,2,1,1,32,34,23,32]这些物品请问我冰箱里一共有多少种不同的物品?
list,set转换获取
"""def question_8(list=[1, 4, 5, 2, 4, 87, 32, 45, 23, 56, 4, 6, 9, 45, 56, 5, 4, 2, 1, 1, 32, 34, 23, 32]):print(len(set(list)))

list,set转换与其性质的问题,基本功属于知识储备层的问题.就算是看了一眼没想起来,百度一下总会会的,和前面的几道题一样,其实都是送分题,不会做,只是证明了,之前的努力要么不够要么路子不对.

第九题

# 9. 我最终从冰箱中拿出了[1,4,6,9,45,56]号食物,请问,我把他们放在一个盘子里,然后又把他们的顺序反了过来,但是只用了一个盘子(数组内存交换)def question_9(list=[1, 4, 6, 9, 45, 56]):n = len(list)length = 0if n % 2 == 0:length = n / 2else:length = (n - 1) / 2for i in range(int(length)):list[i] = list[n - i - 1] + list[i]list[n - i - 1] = list[i] - list[n - i - 1]list[i] = list[i] - list[n - i - 1]print(list)

把我之前在面试的时候讲的问题,扩展了一下,整体难度一般,但还算不上送分题.

要点在于,判断数组的长度,因为存储的是数值,在进行长度判断之后,我们只需要加减就行了.

第十题

# 10. 看着盘子里的食物,我突然感觉少了点什么,于是我打开冰箱取出来食物23号,并按照原来的顺序(逆序)将它放在了合适的位置(list,插入)def question_10(list=[1, 4, 6, 9, 45, 56], number=23):if number > list[len(list) - 1]:list.append(number)else:for i in range(len(list)):if list[i] > number:list.insert(i, number)break# print(i)print(list)question_1()

这个问题就是进行插入,但是到时存在一个很严重的问题,插入位置错了,或者……自己看了看大小去直接插入(这种方式…..哎,算了无力吐槽.只能说,最起码完成该问题的目标了,只是该让计算机去做的事情,你去做了,很可惜.不是最好的解决方案),我给出的一般都是通用解决方案.这个都一个星期了,要是还是总是替计算机做部分工作的话,那我也不太好说,到底是偷懒,还是投机取巧了……

统一执行


# 11.刚刚拿起食物一号,我的手机突然响了,原来是她,来电话了......恩,所以现在我要去接电话了.def exec_all_function(n=10):for i in range(n):if i + 1 == 4:continueexec("question_" + str(i + 1) + "()")

最后的话

关于函数式编程以及python语言自身的巧妙,还是希望各位,去自行体会吧.但是最起码把自己该做的做了.

转载于:https://www.cnblogs.com/fonttian/p/8480717.html

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

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

相关文章

python爬音乐网站_用 Python 爬取 QQ 音乐全部歌曲

前景介绍 最近小伙伴们听歌的兴趣大涨,网抑云综合症已经遍布各地。 咱们再来抬高一波QQ音乐的热度吧。 土豪充绿钻 和 刷永久绿钻的除外(me) 爬它 目标:https://y.qq.com/portal/singer_list.html 任务:将A到Z的歌手以及全部页数的歌存到本地…

8.String、StringBuffer、enum枚举

1.字符串相关类 1)string类代表不可变的字符系列。 2)stringBuffer,Buffer就是缓冲区,代表的是可变的字符系列。 这可变和不可变的是怎么理解呢? 如图,不是a的字符系列改变了,只是 开辟了一份新的内存,然后重新把a指向…

nacos启动_nacos微服务注册中心

nacos主要可作为微服务架构中 动态服务发现、服务配置、服务元数据及流量管理快速使用方法:(k8s集群内)1.下载包,并解压放到服务器,准备用dockerfile打包镜像FROM 192.168.0.200:5000/hifm-nacos:2.0.0 ADD startup.sh…

esp8266原理图_ESP32/ESP8266使用MicroPython控制DHT11/DHT22

背景知识视频教程高级ESP32 - 国外课栈​viadean.com使用NodeMCU(由ESP8266支持),MicroPython和PyCharm进行物联网 - 国外课栈​viadean.com适用于使用ESP32/ESP8266的所有人的MicroPython(入门) - 国外课栈​viadean.…

如何将word中的对象怎么显示到工具栏_职场必备!Word实用技巧最全总结(五)...

1、 用目录快速定位目录通常是长文档不可缺少的部分,有了目录,阅读者就能很容易地知道文档中有什么内容,如何查找这些内容。下面介绍使用内部标题样式创建目录的方法:1、单击要建立目录的地方,通常是文档的最前面&…

html博客源码_5分钟搭建私人Java博客系统——Tale

本文适合刚学习完 Java 语言基础的人群,跟着本文可了解和运行 Tale 项目。示例均在 Windows 操作系统下演示本文作者:HelloGitHub-秦人HelloGitHub 推出的《讲解开源项目》[1]系列,今天给大家带来一款基于 Java 语言的轻量级博客开源项目——…

17秋 软件工程 团队第五次作业 Alpha Scrum2

17秋 软件工程 团队第五次作业 Alpha Scrum2 今日完成的任务 杰麟:Java后端的学习;世强:登录和注册接口编写;港晨:完成数据库表的设计;树民、陈翔:完成超级管理员后端框架。其余成员外出比赛。 …

运行返回签名不正确_如果调用约定不匹配,会发生什么?

蝎子信不信由你,调用约定不匹配是程序经常出问题的原因之一。当你的程序代码中出现不相匹配的调动约定的时候,编译器会”大吼大叫”,但是懒惰的程序员只会在其中进行强制转换,以使编译器”尽快闭嘴”。结果是:Windows不…

计算机硬件教学设计高中信息,重大版信息技术七上《计算机硬件系统》教学设计.doc...

重大版信息技术七上《计算机硬件系统》教学设计.doc文档编号:745134文档页数:3上传时间: 2019-09-19文档级别:文档类型:doc文档大小:33.00KB计算机硬件系统教学设计 知识目标 1、学生了解计算机组成各部分的…

html 循环_一个不被程序员认为是编程语言的语言——HTML,你怎么看?

HTML究竟算不算是一门编程语言,这是争执已久的话题。其实,从本质来讲,HTML确实算不上是一门编程语言。HTML全称,HyperText Markup Language。字面理解,HTML就是一种超文本语言,何谓超文本,就是其…

Java Web学习总结(10)学习总结-EL表达式

一,EL 表达式概述(EL主要从域中取数据) EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL出现的目的是要替代jsp页面中脚本的编写。 二,EL从域中取出数据(EL…

图片测量尺寸软件_3D扫描之工件测量检测

一.技术简介消费者追求品质和时尚的需求使制造领域发生了一系列变革,最明显的两点:一是产品外形增加了更多的曲面设计;二是产品的质量控制标准越来越严格。而这两点的变化又对检测行业提出了更高的要求,传统的测量或检…

input只能输入数字_Python基础第一个案例:猜数字游戏,这个都写不出,那就放弃吧...

前言本文案例只适合新手,老司机请绕路。游戏介绍:程序自己有一个数字,用户输入一个数字,两个数字进行比较。知识点:input函数字符串while循环if条件判断语句break语句开始撸代码先来看看效果图代码# 1. 有一个数字 my_…

java 异或_Javase第一部分:操作符的使用(按位异或运算)(含视频讲解)

本套课程讲解详细深入,内容丰富,包含了数据结构、JVM、GC等大厂常见的面试知识精讲,而且配有在线的预习文档课堂笔记每天作业,可以缩短你的学习周期,提高学习效率。Java精讲视频六大板块----带你轻松入门Java​mp.weixin.qq.com本…

图文详解linux/windows mysql忘记root密码解决方案

经常有用户过来咨询说自己的mysql服务器忘记密码了怎么办,为了更好的解决大家的困扰,本文特归档整理了windows和linux系统下,mysql忘记密码的解决方案。本文内容是我亲测实用,当然过程中踩过的坑我也会在本文中一并分享交流。废话…

vue css load,vue css3loadding插件的开发以及npm包的发布管理

插件开发的话建议使用vue-gitment脚手架开发vue init webpack-simple vue-gitment如果提示执行cnpm install vue-cli -g 全局安装cnpm install vue-cli -g在次执行上面的命令完成之后可以看到这样的目录在src下面添加component loadding.js loadding.vueloadding.vueexport def…

js删除数组中指定元素_js中数组操作详解

今天给大家带来一篇有关数组操作方法的文章。新建数组方法一:通过new运算符创建一个数组构造函数。var arr new Array();方法二:通过方括号直接创建直接量数组。var arr [1,2,3];添加数组中的元素方法一:通过下标添加元素。var arr new Ar…

批量下载,多文件压缩打包zip下载

0、写在前面的话图片批量下载,要求下载时集成为一个压缩包进行下载。从昨天下午折腾到现在,踩坑踩得莫名其妙,还是来唠唠,给自己留个印象的同时,也希望给需要用到这个方法的人带来一些帮助。1、先叨叨IO叨叨IO是因为网…

选了combobox里的选项后没激发change事件_35岁前多用利弊分析,35岁后要有“安全边际”...

想冒险,要趁早1/6、距离糟糕的事情发生,还有多远?我现在同时在职场和投资两类战线写文章,读者也开始串戏。前几天在我另外一个投资号上,有人问我:如果你把投资理念原则扩大到生活中,你觉得最有启…

[W班]第二次结对作业成绩评价

作业地址: https://edu.cnblogs.com/campus/fzu/FZUSoftwareEngineering1715W/homework/1016 作业要求: 1、代码具有规范性。 2、实现的程序语言不做限制性要求,但需要能生成Windows平台的可执行文件。C/C/C#编译后即可生成,其他…