python算法:谁在说谎?
一,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/16/python-suan-fa-shui-zai-shuo-huang/
代码: https://github.com/liuhongdi/ 或 https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,谁在说谎的题目与分析
1,题目:
现有张三、李四和王五三个人,张三说李四在说谎,李四说王五在说谎,而王五说张三和李四两
人都在说谎。要求编程求出这三个人中到底谁说的是真话?谁说的是假话?
2,分析:
假设:
张三所说内容为x,
李四所说内容为y,
王五所说内容为z
x==1 and y==0——张三说的是真话,李四在说谎
x==0 and y==1——张三在说谎,李四说的是真话
y==1 and z==0——李四说的是真话,王五在说谎
y==0 and z==1——李四在说谎,王五说的是真话
z==1 and x==0 and y==0——王五说的是真话,则张三和李四两人就都在说谎
z==0 and x+y!=0——王五在说谎,则张三和李四两人至少一人说的是真话
三,代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# 三个条件都符合时,则得到结果 for x in range ( 2 ): for y in range ( 2 ): for z in range ( 2 ): if (((x and not y) or ( not x and y)) and ((y and not z) or ( not y and z)) and ((z and x = = 0 and y = = 0 ) or ( not z and x + y ! = 0 ))): xstr = '张三说的是真话' if x = = 1 else '张三说的是假话' ystr = '李四说的是真话' if y = = 1 else '李四说的是假话' zstr = '王五说的是真话' if z = = 1 else '王五说的是假话' print ( "x:" , x, xstr) print ( "y:" , y, ystr) print ( "z:" , z, zstr) |
运行结果:
x: 0 张三说的是假话
y: 1 李四说的是真话
z: 0 王五说的是假话