一,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
说明:刘宏缔的架构森林—专注it技术的博客,
网址:https://imgtouch.com
本文: https://blog.imgtouch.com/index.php/2024/03/28/python-suan-fa-wu-jia-gong-jing/
代码: https://github.com/liuhongdi/ 或 https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: [email protected]
二,五家共井的题目与分析
1,题目
有五家共用一口井,
甲、乙、丙、丁、戊五家各有一条绳子汲水,
下面用文字表示每一家的绳子:
甲×2+乙=井深,
乙×3+丙=井深,
丙×4+丁=井深,
丁×5+戊=井深,
戊×6+甲=井深,
求甲、乙、丙、丁、戊各家绳子的长度和井深
2,分析
思路:
这种题目用的是五元一次方程组,
设甲、乙、丙、丁、戊五根绳子分别长a、b、c、d、e,井深h,
那么列出方程组:
2a + b = h
3b + c = h
4c + d = h
5d + e = h
6e + a = h
变形后:
b=h-2a
c=h-3b
d=h-4c
e=h-5d
a=h-6e
可知:
a=h-6(h-5d)
依次代入,最终得到:
721a = 265h
则:
h 721
– = –
a 265
设h = 721k
则
a = 265k
b = 191k
c = 148k
d = 129k
e = 76k
知道了比例之后,因为绳长和井深不可能为负,所以k > 0,
因为这里的数字只是成比例关系,所以这个题目就有多个解的,
在这里我们假定: 0 < k <6,把k的值代入即可
三,编写代码:
1 2 3 4 5 6 7 8 9 |
# 设i的取值范围:[1,5]
for i in range ( 1 , 6 ):
a = 265 * i # 甲
b = 191 * i # 乙
c = 148 * i # 丙
d = 129 * i # 丁
e = 76 * i # 戊
h = 721 * i # 井深
print (f "井深:{h},甲:{a},乙:{b},丙:{c},丁:{d},戊:{e}" )
|
运行结果:
井深:721,甲:265,乙:191,丙:148,丁:129,戊:76
井深:1442,甲:530,乙:382,丙:296,丁:258,戊:152
井深:2163,甲:795,乙:573,丙:444,丁:387,戊:228
井深:2884,甲:1060,乙:764,丙:592,丁:516,戊:304
井深:3605,甲:1325,乙:955,丙:740,丁:645,戊:380
四,分析之二
如果解方程不需要花太多的步骤,在程序中用循环处理,是否也可以?
已知:
2a + b = h
3b + c = h
4c + d = h
5d + e = h
6e + a = h
可以得到:
a = b+c/2
b = c+d/3
c = d+e/4
d = e+a/5
不考虑小数的情况下,
可以得到:
c是2的倍数,
d是3的倍数,
e是4的倍数,
a是5的倍数
五,编写代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# 函数,返回各家绳子的长度和井的深度
def fun():
e = 0
while True :
e + = 4 # e是4的倍数
a = 0
while True :
a + = 5 # a是5的倍数
d = e + a / 5 # 得到d
c = d + e / 4 # 得到c
if c % 2 ! = 0 or d % 3 ! = 0 : # c是2的倍数,d是3的倍数
continue
b = c + d / 3 # 得到b
if a > b + c / 2 : # a在自增,当a大于b + c / 2要停下来
break
if b + c / 2 = = a: # 得到a, 4个条件都匹配
h = 2 * a + b # 得到h,返回
str = f "井深:{h},甲:{a},乙:{b},丙:{c},丁:{d},戊:{e}"
return str
print (fun())
|
运行结果:
井深:721.0,甲:265,乙:191.0,丙:148.0,丁:129.0,戊:76
标签:共井,python,井深,五家,range,倍数,265,print,com
From: https://www.cnblogs.com/architectforest/p/18195587