我是Python的新手,并且模数有问题.
这是代码:
for i in range(ord('a'), ord('z')+1):
print chr(((i+2) % 97) + 97 )
Run Code Online (Sandbox Code Playgroud)
检测到的结果是cdef...a
.但是,一旦我们到达,我就无法获得所需的模块行为z
.
因为97不是你想要包装的 - 你想要在ord('z')
= 122 处包装,然后添加ord('a')
(97)的值.
你真正需要做的完整数学运算是转移到偏移量,然后回到集合.例如...
for i in range(ord('z') - ord('a') + 1): # equivalent to range(26); i.e. 0-25
print chr(((i+2) % 26) + ord('a')) # results in 2+97 'c', 3+97 'd', etc.
Run Code Online (Sandbox Code Playgroud)
你的现有代码不起作用的原因是因为你的i+2
总是大于97(因为你的i
起点ord('a')
是97,从那里开始),所以% 97
实际上只是- 97
,因此你的打印线实际上是这样的:
print chr(((i+2) - 97) + 97 )
Run Code Online (Sandbox Code Playgroud)
减少到......
print chr((i+2) - 97 + 97)
Run Code Online (Sandbox Code Playgroud)
这显然是公正的print chr(i+2)
.
归档时间: |
|
查看次数: |
1228 次 |
最近记录: |