一,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/29/python-suan-fa-xin-lang-xin-niang/
代码: https://github.com/liuhongdi/ 或 https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: [email protected]
二,新郎新娘的题目与解析:
1,题目:
有三对情侣结婚,假设:
三个新郎为A、B、C,
三个新娘为X、Y、Z。
有参加婚礼的人搞不清谁和谁结婚,所以去询问了这六位新人中的三位,得到的回答为:
新郎A说他要和新娘X结婚;
新娘X说她的未婚夫是新郎C;
新郎C说他要和新娘Z结婚。
听到这样的回答后,提问者知道他们都是在开玩笑,说的都是假话,但他仍搞不清谁和谁结婚。现在请编程求出到底哪位新郎和哪位新娘结婚。
2,解析:
因为提问者得到的回答都是假话,所以:
新郎A的新娘不是X,
X的新郎不是C,
C的新娘不是Z。 一个新郎只能和一个新娘结婚,他们之间是一对一的关系
设三个变量x、y和z分别表示与新娘X、Y、Z结婚的新郎,
它们可能取值的集合是{‘A’,’B’,’C’}。
定义一个groom列表来存放三个新郎,如下:
groom = [‘A’,’B’,’C’]
根据问题分析中获得的结论,可以得出判断依据如下:
x!=’A’——新郎A的新娘不是X。
x!=’C’——与新娘X结婚的新郎不是C。
z!=’C’——C的新娘不是Z。
x!=y——与新娘X结婚的新郎不会与新娘Y结婚。
x!=z——与新娘X结婚的新郎不会与新娘Z结婚。
y!=z——与新娘Y结婚的新郎不会与新娘Z结婚。
将上面的判断依据组合起来,
找到变量x、y和z所满足的条件找到上面的条件以后,
在程序中使用三重循环来穷举x、y和z的所有取值
三,编写代码:
1 2 3 4 5 6 7 8 9 10 11 12 |
# 定义列表,保存三个新郎
groom = [ 'A' , 'B' , 'C' ]
# 穷举所有可能情况
for x in groom: # 新娘x的匹配值
for y in groom: # 新娘y的匹配值
for z in groom: # 新娘z的匹配值
# 题目中的要求,同时x,y,z的取值不能重复
if (x ! = 'A' and x ! = 'C' and z ! = 'C' and
x ! = y and x ! = z and y ! = z):
print ( "新娘X与新郎" + x + "结婚" )
print ( "新娘Y与新郎" + y + "结婚" )
print ( "新娘Z与新郎" + z + "结婚" )
|
运行结果:
新娘X与新郎B结婚
新娘Y与新郎C结婚
新娘Z与新郎A结婚
标签:结婚,新郎新娘,python,com,新娘,groom,算法,print,新郎
From: https://www.cnblogs.com/architectforest/p/18195629