这是我在python123.io做作业的时候,正好在 单元一选做练习第二道 中想到的一些问题。
一、精度问题:
由于浮点数储存方式的关系,所以在计算中不免会损失一些精度。比如在python3中,(0.1+0.2==0.3)的值为False,这就会引发一系列的问题。那么在python3中,除了使用decimal或者先转化成整数之外,还有没有更好的、又比较通用的解决方式?
由于浮点数储存方式的关系,所以在计算中不免会损失一些精度。比如在python3中,(0.1+0.2==0.3)的值为False,这就会引发一系列的问题。那么在python3中,除了使用decimal或者先转化成整数之外,还有没有更好的、又比较通用的解决方式?
二、类型问题:
由于有些题目的要求,可能计算过程中涉及到小数,但是答案是整数又要以int形式输出。这就涉及到了浮点数类型的整数转化成整数类型的整数的问题。我使用的方式是判断一下a-int(a)是否等于0,如果是就int()一下,似乎有点繁琐。有没有什么小技巧可以高效处理这个问题?
由于有些题目的要求,可能计算过程中涉及到小数,但是答案是整数又要以int形式输出。这就涉及到了浮点数类型的整数转化成整数类型的整数的问题。我使用的方式是判断一下a-int(a)是否等于0,如果是就int()一下,似乎有点繁琐。有没有什么小技巧可以高效处理这个问题?
三、关于题目本身:
由于题目的第二个测试用例的一个输入为小数,且隐藏了输出,而且没有明确指定输出数据的类型。因此,可能会有答案做出来是对的,但由于浮点数整数类型的问题(比如答案是3,你的输出是3.0),导致被判错。这很容易让学生感到疑惑:究竟是我真的写错代码了,还是由于其他的问题。因此,我建议尽可能少地隐藏输出,方便学生比对。回到问题本身,由于上述原因:我不清楚我这道题错了是什么原因……请老师解答一下,谢谢!
由于题目的第二个测试用例的一个输入为小数,且隐藏了输出,而且没有明确指定输出数据的类型。因此,可能会有答案做出来是对的,但由于浮点数整数类型的问题(比如答案是3,你的输出是3.0),导致被判错。这很容易让学生感到疑惑:究竟是我真的写错代码了,还是由于其他的问题。因此,我建议尽可能少地隐藏输出,方便学生比对。回到问题本身,由于上述原因:我不清楚我这道题错了是什么原因……请老师解答一下,谢谢!
原题:
40032003000301550579046915
M与N的数学运算
用户输入两个数M和N,其中N是整数,计算M和N的5种数学运算结果,并依次输出,结果间用空格分隔。5种数学运算分别是:M与N的和、M与N的乘积、M的N次幂、M除N的余数、M和N中较大的值。
本平台可以通过两次调用input()获得两个输入,示例代码如下:
m = input()
n = input()
print(m, n)
输入示例1:10, 2
输出示例1:12 20 100 0 10
40032003000301550579046915
M与N的数学运算
用户输入两个数M和N,其中N是整数,计算M和N的5种数学运算结果,并依次输出,结果间用空格分隔。5种数学运算分别是:M与N的和、M与N的乘积、M的N次幂、M除N的余数、M和N中较大的值。
本平台可以通过两次调用input()获得两个输入,示例代码如下:
m = input()
n = input()
print(m, n)
输入示例1:10, 2
输出示例1:12 20 100 0 10
我的回答:

结果:
其中有两个输入都是整数的测试用例都通过了。有一个输入为:1024.2, 5的,我的输出为:1029.2 5121 1126999848051023.87232 4.2 1024.2。显示未通过。
其中有两个输入都是整数的测试用例都通过了。有一个输入为:1024.2, 5的,我的输出为:1029.2 5121 1126999848051023.87232 4.2 1024.2。显示未通过。
最后试出来了,答案要求是float,也损失的精度,比如那个4.2,答案要求的输出是4.200000001435。所以以后尽量给个输出吧




Warning: A non-numeric value encountered in /www/wwwroot/i.pegasi.top/wp-content/themes/begin/inc/function/comment-template.php on line 31
2019年02月20日 17:22 -49楼
Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /www/wwwroot/i.pegasi.top/wp-content/themes/begin/inc/function/setting.php on line 1367
2019年02月21日 20:33 地下1层
Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /www/wwwroot/i.pegasi.top/wp-content/themes/begin/inc/function/setting.php on line 1367
@AelV