python第4天作业

问答题
0. 请问 6 / 2 的结果是一个整数还是浮点数呢?

整数

答:浮点数。来自https://fishc.com.cn
9Tz>i}I^<S&L#d1-u:!K@JyvU
解析:Python 除法的运算结果是以浮点数的形式存储的(尽管结果可以整除)。6
1. 请问为什么会出现下面的计算结果:

  1. >>> 0.1 + 0.2 - 0.2
  2. 0.10000000000000003
复制代码

浮点数存在误差

如果需要做到 100% 精确计算浮点数,请使用 decimal 模块

2. 凭借自己的聪明才智,你觉得为什么浮点数的存储会存在“误差”?

因为浮点数的位数可以是无限的,但计算机的内存和硬盘确是有限的,用有限的资源来描述无限的内容,本身就是一个悖论
3. 请问下面代码存在什么问题?

  1. >>> age = 18
  2. >>> message = "祝小甲鱼" + age + "岁生日快乐^o^"
复制代码
 
解析:如果非要这么做,试试 message = "祝小甲鱼" + str(age) + "岁生日快乐^o^"'6J p

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("实验结束")

  

 

posted @   猫猫家的毛毛虫  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示