python第4天作业
问答题
0. 请问 6 / 2 的结果是一个整数还是浮点数呢?
整数
答:浮点数。来自:https://fishc.com.cn
9Tz>i}I^<S&L#d1-u:!K@JyvU
解析:Python 除法的运算结果是以浮点数的形式存储的(尽管结果可以整除)。6
1. 请问为什么会出现下面的计算结果:
- >>> 0.1 + 0.2 - 0.2
- 0.10000000000000003
浮点数存在误差
如果需要做到 100% 精确计算浮点数,请使用 decimal 模块
2. 凭借自己的聪明才智,你觉得为什么浮点数的存储会存在“误差”?
因为浮点数的位数可以是无限的,但计算机的内存和硬盘确是有限的,用有限的资源来描述无限的内容,本身就是一个悖论
3. 请问下面代码存在什么问题?
- >>> age = 18
- >>> message = "祝小甲鱼" + age + "岁生日快乐^o^"
4. 请问在 Python 中,浮点数 1.0 + 2.0 是否等值于整数 3?
不等于,等于3.0,浮点数相加等于浮点数,3是整数
是
解析:虽然在 Python 中,整数和字符串或者浮点数和字符串是不能进行比较的,但整数和浮点数却可以。另外,当浮点数相加的结果等于整数时,偏差则不会出现,比如 0.1 + 0.2 会出现偏差,这个我们在视频中已经演示过了,但 0.1 + 0.2 + 0.7 却能得到整数答案 1.0。Db
5. 请写出科学计数法 3.14e5 等值的浮点数
314000.0
0. 表达式 0.1 + 0.1 + 0.1 - 0.3 看似乎很傻,小学生都会,但 Python 可能搞不定,如下图所示,结果是一个非常奇葩的数值……请使用恰当的方式计算出正确的结果。
decimal模块提供了一种精确的十进制运算方法,可以解决浮点数精度问题
1 2 3 4 | import decimal a = decimal.Decimal( '0.1' ) b = decimal.Decimal( '0.2' ) print (a + a + a - b) |
1 |
有一个统计学教授,在第一堂课上,给学生布置了个作业。
要求大家做一件特别乏味的工作,拿出一枚硬币,连扔200次,然后记下结果,正面还是反面,仔细记录。
教授提醒说:“你们可别造假,造假我可看得出来!
<ignore_js_op>
学生们以为教授只是在吓唬人,没当回事。
对啊,什么叫连续扔硬币,不就是搞一个随机数嘛。
随机数就是没有规律的数啊,我们就编一个没有规律的结果不就行了吗?
这是人之常情嘛,所以手动胡乱写200个很方便有木有……
果然有学生偷懒,没有老老实实地去掷200次硬币,而是编了个记录表交差了。
奇怪的是,教授果然一眼就能识别出哪些学生偷懒了,没有真的扔硬币。
那教授怎么发现的呢?
很简单,如果是我们想偷懒会怎么做?
胡编一个记录呗,只要正反都有就得了
就像这样:正反正反反正反反……
如果只是胡乱的看看,那确实没问题,但是作为逻辑性思维很强的统计学教授一看就知道大有问题!
教授之所以一眼看出来是假的,就是因为这个记录表编造得太“随机”了
造假者认为,只有这样才符合掷硬币这种“随机现象”的特征。
实际上,如果你真去老老实实地掷 200 次硬币,并且全都记录下来,就会发现:
正面或者反面连续出现六七次的现象会很多。
真正的结果会存在像这样的记录:正反反反反反正正反反正正正正正正正……
好,现在让我们一起来写一个模拟抛硬币的代码吧^o^*}[afe
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # 导入随机模块#import random # 接收用户输入并将数值赋值给 counts 变量 # i = 0 counts = 200 print ( "开始抛硬币实验:" ) while i < counts: # 生成一个随机数num # num = random.randint( 1 , 2 ) if num = = 1 : # 打印结果 # print ( '正' ) else : # 打印结果 # print ( '反' ) i = i + 1 print ( "实验结束" ) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?