现在,我们想要再向前迈进一小步。如何创建一个有确定和的幻方?例如,你可以问一个年龄超过21岁的人的年龄,并为其年龄创建一个个性化的幻方。那会多令人印象深刻啊!
我们应该如何修改程序?
对于此变量,不再输入a和b的数值,仅输入所需的和。根据和,现在应该计算a和b。程序的其余部分保持不变(数字的输出部分)。该和必须大于21,因为22是最小的4×4幻方的和。
如果和为"21*a+b"加b,那么你也可以使用a,从给定的和中确定b。如果你擅长数学,那么你可能会自己发现,如果发现不了,让我来告诉你:
█ a是总数除以21的结果(作为整数部分)
█ b是将总数除以21后所得的余数。
之前,我们已经在计算机中完成了类似的工作,计算得出余数。因此公式是相同的:
█ a=sum//21(带双斜杠的整数除法)
█ b=sum%21(用百分号算出余数)
警告
此方法不适用于21的倍数——不适合21、42、63、84……,因为第二个数字在这些情况中为0。这些情况可以在程序中单独处理,但为了简单起见,我们暂时不考虑这部分。
这就是我们更改后的程序:
现在,你可以输入(几乎)任何你想到的从22到无穷大的和,Python会为你计算出一个有效的幻方(如图7.10所示)!
图7.10 和为25的幻方
总结
█ 程序是一系列命令。
█ 大多数程序由数据输入、数据处理(计算)和数据输出组成。
█ 启动程序时,Python从上到下依次执行列表中的每条命令。处理完一条命令后,接着处理下一条。
█ 变量用于临时存储值和字符串。人们使用变量时,使用的就是变量的内容。
█ 如果你知道该公式,则可以为每个计算编写一个程序,无论简单还是复杂,都可以简化所需值的计算。
█ 你可以在每个程序中插入注释,以使程序更易于理解。注释始终以“#”号开头,并在行的结尾处结束。