python学习疑惑

我就不吐槽python3学习起来有多烦了,好多好多资源都是基于2的,3都出现这么多年了,怎么2还这么多啊!对于初学者而言,每测试一个例子,就得去google各种2与3的区别,然后默默地改代码,做测试,实在是非常影响学习效率。


就说说我看的官方的文档吧,我打开python tutorial,3.3.2版的,和我本地python一个版本,我随便打开了一个页面,测试了一个例子,却发现各种差别。

谁能告诉我这是为什么啊???

官方文档是这样写的:

在4.4 break, continue这一节当中,有一个例子:

>>> for n in range(2, 10):
...     for x in range(2, n):
...         if n % x == 0:
...             print(n, 'equals', x, '*', n//x)
...             break
...     else:
...         # loop fell through without finding a factor
...         print(n, 'is a prime number')


指南上的输出是这样的:

2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3
看起来很正常的样子对伐啦?


我在本地IDLE写了一下,一样的代码,这样写的:

for n in range(2,10):
	for x in range(2,n):
		if n%x == 0:
			print(n, 'equals', x, '*', n//x)
			break
		else:
			print(n, 'is a prime number')

运行结果却是:

3 is a prime number
4 equals 2 * 2
5 is a prime number
5 is a prime number
5 is a prime number
6 equals 2 * 3
7 is a prime number
7 is a prime number
7 is a prime number
7 is a prime number
7 is a prime number
8 equals 2 * 4
9 is a prime number
9 equals 3 * 3


一个问题是2不见了这个我能理解,因为n=2的时候range(2,n)应该是空的,因为range左闭右开,不知道指南里面是怎么出现2的。

还有个问题是break似乎无用啊。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值