实在不会,怎么用Python解答逻辑问题?有会的人请教教我,是学校的任务,马上就要交了
boxes = {"yellow":False, "green":False, "blue":False, "red":False}
for i in boxes:
boxes[i] = True
clues = [
not boxes["blue"],
boxes["red"] or boxes["yellow"],
boxes["blue"],
boxes["green"]
]
if sum(clues) == 1:
print(f"Candies are in box {i}.")
break
boxes[i] = False
else:
print("No candies in all boxes.")
全部代码如下,均已测试过:
boxes = {"yellow":False, "green":False, "blue":False, "red":False}
for i in boxes:
boxes[i] = True
clues = [
not boxes["blue"],
boxes["red"] or boxes["yellow"],
boxes["blue"],
boxes["green"]
]
if sum(clues) == 1:
print(f"Candies are in box {i}.")
break
boxes[i] = False
else:
print("No candies in all boxes.")
如下图所示:
boxes = {'黄盒': '糖果不在蓝盒子中',
'绿盒': '糖果在红盒子或在黄盒子中',
'蓝盒': '糖果在蓝盒子中',
'红盒': '糖果在绿盒子中'}
# 记录符合条件的盒子数量
true_count = 0
for box in boxes:
desc = boxes[box]
if '不在' + box in desc:
continue
# 当前盒子信息的真假
if '在' + box in desc:
candy_in_box = True
else:
candy_in_box = False
# 检查糖果是否在其他盒子中
candy_in_other_box = False
for other_box in boxes:
if other_box != box and '在' + other_box in desc:
candy_in_other_box = True
break
# 如果糖果只在当前盒子中并且当前盒子上的信息是真实的
if candy_in_box and not candy_in_other_box:
true_count += 1
true_box = box
# 如果符合条件的盒子数量只有一个
if true_count == 1:
print("有糖果的盒子是", true_box)
else:
print("题目假定不存在")
优点:
1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
2.易于阅读:Python代码定义的更清晰。
3.易于维护:Python的成功在于它的源代码是相当容易维护的。
4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
8.数据库:Python提供所有主要的商业数据库的接口。
9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。
10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。
相比其他编程语言(比如 Java),Python 代码非常简单,上手非常容易。比如我们要完成某个功能,如果用 Java 需要 100 行代码,但用 Python 可能只需要 20 行代码,这是 Python 具有巨大吸引力的一大特点。
Python 的两大特色是清晰的语法和可扩展性:
- Python 的语法非常清晰,它甚至不是一种格式自由的语言。例如,它要求 if 语句的下一行必须向右缩进,否则不能通过编译。
- Python 的可扩展性体现为它的模块,Python 具有脚本语言中最丰富和强大的类库(这些类库被形象地称为“batteries included ,内置电池”),这些类库覆盖了文件 I/O、GUI、网络编程、数据库访问、文本操作等绝大部分应用场景。
此外,Python 的社区也很发达,即使一些小众的应用场景,Python 往往也有对应的开源模块来提供解决方案。
Python 作为一门解释型的语言,它天生具有跨平台的特征,只要为平台提供了相应的 Python 解释器,Python 就可以在该平台上运行。
缺点:
- 速度慢:(Python 程序比 Java、C、C++ 等程序的运行效率都要慢)。但目前计算机的硬件速度越来越快,软件工程往往更关注开发过程的效率和可靠性,而不是软件的运行效率。
- 源代码加密困难:(不像编译型语言的源程序会被编译成目标程序,Python 直接运行源程序,因此对源代码加密比较困难)。但现在软件行业的大势本来就是开源,就像 Java 程序同样很容易反编译,但丝毫不会影响它的流行。
- 国内市场较小:(国内以 Python 来做主要开发的,目前只有一些 web2.0 公司)。但时间推移,目前很多国内软件公司,尤其是游戏公司,也开始规模使用它。
- 中文资料匮乏:(好的 Python 中文资料屈指可数,现在应该变多了)。托社区的福,有几本优秀的教材已经被翻译了,但入门级教材多,高级内容还是只能看英语版。
- 构架选择太多:(没有像 C# 这样的官方 .net 构架,也没有像 ruby 由于历史较短,构架开发的相对集中。Ruby on Rails 构架开发中小型web程序天下无敌)。但这也从另一个侧面说明,python比较优秀,吸引的人才多,项目也多。
以上为对Python语言以及该语言特点的简介,个人是这门流行的语言——Python的爱好者,写这篇文章,也希望帮助到,与我一样是Python爱好者,或者说初学者,编程爱好者,程序员对这门语言的一点点了解,一点点帮助,与此同时,感谢大家阅读我的文章,以及评论区对我的支持和鼓励,一同共勉哦!!