首页 > 试题广场 >

如下程序会打印多少个数:()

[单选题]
如下程序会打印多少个数:()
k = 1000
while k > 1:
    print k
    k = k/2

  • 1000
  • 10
  • 11
  • 9
1000
500
250
125
62
31
15
7
3
打印完3,之后k=1退出循环,所以9次
发表于 2019-08-09 21:53:58 回复(20)
python2和python3的除法有坑的啊😂
网站python出的题目也有点小坑,没说明是2还是3,不过print 没加括号,应认为是python2。网站判的答案也是错的,它给的是B,10个,其实 应该是D 9个,第一个高赞答案是对的。
python2 整数除法/时,会取整的,所以应该是9个。
python3 除法/,结果是浮点的,所以是10个,除非用地板除//取整,是9个。

发表于 2020-02-12 10:14:10 回复(7)
k = 1000
sum = 0
while k > 1:
    sum += 1
    print(k)
    k = k/2
print(sum)
# 1000
# 500.0
# 250.0
# 125.0
# 62.5
# 31.25
# 15.625
# 7.8125
# 3.90625
# 1.953125
# 10
# 代码运行应该是10个,python是不会自动取整的,题目应该是取整后的结果!
发表于 2019-03-15 11:13:00 回复(4)
2的10次方是1024,刚好大于1000一些,所以只能除9次.选D.
发表于 2019-10-20 21:55:37 回复(2)
不用争了,我已经验证了,首先从print后面没括号,用的py2,验证的结果是9个。另外,py2是向下取整,比如5/3=1。最后,如果是py3,那么输出浮点数,是10个。
发表于 2020-05-25 21:54:13 回复(0)
python 并不会自动取整,应该是10。 取整有三种方法:
int(k)  剪掉小数部分
 k =k//2  取整数下界
或者round()  四舍五入
编辑于 2019-03-13 15:24:20 回复(1)
python3结果如下:

python2 结果如下:


发表于 2020-01-03 22:02:33 回复(0)
这个题就比较神奇了,写法是py2的,但是py2里面这个结果就是9次。用py3算出来应该是10次。但是如果是py3那么它里面的print k写法就是错误的应该加上括号
发表于 2020-02-20 09:34:08 回复(0)
把程序运行出来,明明是10个啊
发表于 2019-03-12 21:08:32 回复(4)
k = 1000
while k > 1:
    print (k)
    k = k/2

1000
500.0
250.0
125.0
62.5
31.25
15.625
7.8125
3.90625
1.953125
发表于 2022-05-23 09:11:53 回复(0)
python之父来了,我还是选9个!!!
发表于 2022-03-14 17:13:49 回复(0)
10次吧

发表于 2021-10-13 23:56:59 回复(0)
早吧Python2忘了(⍥(⍥(⍥(⍥(⍥;;) 
发表于 2020-11-24 20:54:28 回复(0)
题目语法是python2, 除法向下取整,因此答案为9。
python3 保留浮点数,则答案为10。
发表于 2020-10-28 14:57:06 回复(0)
Py3答案是10,Py2答案是9,但题目明明是Py2。。。
发表于 2019-12-24 20:20:02 回复(0)

编译错误,变量类型未声明

发表于 2019-12-20 19:57:08 回复(0)
1000大于2的9次方,小于2的10次方,因此需要除10次2才会小于1,除了10次2也就代表打印了10个数
发表于 2023-07-15 00:32:12 回复(0)
在python2中,整数相除结果取整,应该是9次。
在python3中,整数相除结果保留浮点数,应该是10次。
只能说题目的写法和答案不是很匹配。
发表于 2023-01-04 19:52:11 回复(0)
目前python3.9,答案为10个,不会去自动取整

发表于 2022-01-25 14:37:25 回复(1)
2^9最接近1000
发表于 2021-02-28 01:25:58 回复(0)