一,for循环:
1,功能:重复执行同一段代码
语法:
for index in range(n):
# 循环体代码
index : 用来依次接收可迭代对象中的元素的变量名
range()函数:负责返回整数序列
流程图:
2,应用
range可以同时指定start 和stop,用for遍历并打印
1 2 3 4 |
# 指定 start和stop
# print的参数 end=" " 用来使打印不换行
for num in range ( 3 , 9 ):
print (num, end = " " )
|
运行结果:
3 4 5 6 7 8
二,while循环:
1,功能:重复执行同一段代码
语法:
while 条件表达式:
# 循环体
当条件表达式的返回值为真时,则执行循环体中的语句,
执行完毕后,重新判断条件表达式的返回值,
如果表达式返回的结果为假,则退出循环体
2,流程图:
3,打印从1到10
1 2 3 4 5 |
# 打印从1到10
n = 1
while n < = 10 :
print (n, end = " " )
n + = 1
|
运行结果:
1 2 3 4 5 6 7 8 9 10
说明:刘宏缔的架构森林—专注it技术的博客,
网址:https://imgtouch.com
本文: https://blog.imgtouch.com/index.php/2024/03/14/python-suan-fa-qi-pan-shang-de-mai-li-she-han-wang-shang-mai/
代码: https://github.com/liuhongdi/ 或 https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: [email protected]
三,棋盘上的麦粒的题目与思路
1,题目:
印度的舍罕王打算重赏发明了国际象棋的宰相,宰相说:“陛下,请您在这张棋盘的第一个格內赏给我一粒麦子,在第二个格内赏给我两粒麦子在第三个格內赏给我四粒麦子,照这样每一格内都比前一格多一倍,把这棋盘的64个格都放满就行啦”。舍罕王满口答应:“你所要求的并不多,你会如愿以偿。
请问:一共需要赏赐给这位宰相多少粒麦子?
2,思路:
已知第一格放1粒,第二格放2粒,第三格放4粒,以此类推,而且知道棋盘的格子总数,所以用循环即可,而且for/while都可以
四,编写代码:
1, for循环
1 2 3 4 5 6 |
num = 1 # 当前格的麦子数量
total = 1 # 麦子总数
for i in range ( 2 , 65 ):
num * = 2 # 得到当前格上的麦子数量
total + = num # 把当前格上的麦子数量添加到总数
print ( "麦子总数:" , total)
|
运行结果:
麦子总数: 18446744073709551615
2,while循环
1 2 3 4 5 6 7 8 9 10 |
# 第一格的情况
total = 1 # 麦子总数,当前是第1格时,总数是1
num = 1 # 当前格上的麦子数量,第一格时麦子数量是1
grid = 1 # 第几格,当前是第一格
# 遍历到第64格
while grid < = 63 :
grid + = 1 # 得到当前格
num * = 2 # 得到当前格上的麦子数量
total + = num # 把当前格上的麦子数量添加到总数
print ( "麦粒总数:" , total)
|
运行结果:
麦粒总数: 18446744073709551615
标签:麦子,总数,python,赏麦,while,num,total,格上,舍罕王
From: https://www.cnblogs.com/architectforest/p/18193309