你一整天都会遇到的最简单的问题,与Python数学相关

嗨,伙计们--
我昨晚才开始学巨蟒。使用2.7。
在我正在使用的指南中,这是我们使用的一行字:
打印3+2+1-5+4%2-1/4+6
这份打印:7
我不明白这是怎么回事。我认为这里首先处理模数和除法,所以它不会看起来像:
3+2+1-5+0-1+6
因此打印:6
我的印象是这不会产生分数,因此1/4返回1。我得到的印象是这是不正确的。任何能让我前进的建议和小贴士都是很棒的。谢谢!

# 回答1


1/4
在Python2.xx中返回0。
# 回答2


这太奇怪了,bvdet。
当我第一次在脑海中浏览这个代码时,我想到了6个:

选择 | 换行 | 行号
  1. 3 + 2 = 5
  2. 5 + 1 = 6
  3. 6 - 5 = 1
  4. 1 + 4 = 5
  5. 5 % 2 = 1
  6. 1 - 1 = 0
  7. 0/4 = 0
  8. 0 + 6 = 6

我能看到它等于7的唯一方法是,如果在减法之前做了四分之一的除法:

选择 | 换行 | 行号
  1. 3 + 2 = 5
  2. 5 + 1 = 6
  3. 6 - 5 = 1
  4. 1 + 4 = 5
  5. 5 % 2 = 1
  6. 1 - 1/4 = 1
  7. 1 + 6 = 7

除非它可能会倒退,就像我在Comp SCI课堂上学到的一些数学东西一样……在这种情况下,操作数和运算符被推入堆栈或树中,然后进行计算……

# 回答3


非常感谢,伙计们。
在我看来,在阅读了bvdet的评论后,Frinavale是这样的:
3+2+1-5+(4%2=0)-(1/4=0)+6因此,
3+2+1-5+0-0+6=7
总是有兴趣听到更多关于它的见解。再次感谢,伙计们!
# 回答4


运算符的优先顺序为
1.*/%
2.+-
所以

选择 | 换行 | 行号
  1. >>> (3 + 2 + 1 - 5) + (4 % 2) - (1 / 4) + 6
  2. 7
  3. >>> 

1+0+0+6=7

# 回答5


酷:)

标签: python

添加新评论