c
codeye
V1
2022/11/02阅读:44主题:默认主题
5个困难的Python谜题
5个困难的Python谜题,没有多少人能够解决 我挑战你,证明我是错的
这里有一个挑战--尝试解决以下5个Python编程谜题,而不需要在谷歌上寻找答案。
-
魔术方块 魔术方格是一个包含数字1到9的3x3网格。每3个连续的数字(行、列或对角线)必须加起来是15下面是一个有效的魔方
[ [2, 7, 6],
[9, 5, 1],
[4, 3, 8] ]
在这个谜题中,你得到的是一个不完整的魔方。
[ [2, 0, 0],
[0, 0, 0],
[0, 3, 8] ]
魔术方格是不应该有0的。在这里,0意味着你需要用1到9之间的数字来填充它。
1到9之间的每个数字只能出现一次 每一行、每一列和每一条对角线上的3个数字加起来都必须是15。
def solve(incomplete_square):
# 这里的代码
square = [
[2, 0, 0],
[0, 0, 0],
[0, 3, 8]
]
solve(square)
# [ [2, 7, 6],
# [9, 5, 1],
# [4, 3, 8] ]
-
给一个混乱的字典加上大写字母
你会得到一个混乱的、有多个非结构化嵌套层的搞砸了的字典。例如。
d = {
"a": {"b": "c"},
"d": {
"e": "f",
"g": {
"h": "i",
"j": "k",
"l": "m"
},
"n": {
"o": {
"p": {
"q": {"r": "s"}
}
}
}
}
}
写一个函数,接收这个搞砸了的字典,并返回这个字典的COPY,其中所有的键和值都被转换为大写字母。
d = {
"A": {"B": "C"},
"D": {
"E": "F",
"G": {
"H": "I",
"J": "K",
"L": "M"
},
"N": {
"O": {
"P": {
"Q": {"R": "S"}
}
}
}
}
}
-
字典来自字符串
给你一个字符串,代表一个字典。
string = '{"name": "rocky", "age":5, "imported":True}'
假设键值对很简单,而且没有嵌套的列表、字典和其他集合。值将只是数字(int/float)、字符串或布尔值。
在不使用json库、exec或eval函数或任何其他内置解析器的情况下,编写一个函数,接收这个字符串,并返回一个由该字符串表示的实际字典。
-
迷宫中的最短路径 给你一个代表迷宫的字符串列表。
maze = [
"P#----",
"-#-##-",
"------",
"-#-##-",
"-#-#--",
"---#-X",]
P代表玩家
- 代表一个空位。玩家可以站在空位上
# 代表一堵墙。玩家不能站在墙壁上
X代表目标。如果玩家到达目标,则获胜。
编写一个函数,接收这个迷宫,并返回从玩家到目标的最短路径。玩家每次只能移动一步,而且只能从四个方向移动--向上、向下、向左和向右。该函数返回的一个样本。
["下","下","右","右","右","下","下","下"]
-
混乱的字典到混乱的列表
再一次,你得到了一个混乱的、有多层嵌套的搞砸了的字典。
d = {
"a": "b",
"c": "d",
"e": {
"f": "g",
"h": "i"
},
"j": {
"k": {
"l": {"m": "n"}
}
}
}
写一个函数,将里面的每一个嵌套的 dictionary 转换为一个 list。一个输出的例子。
d = [
["a", "b"],
["c", "d"],
["e", [
["f", "g"],
["h", "i"]
]],
["j", [
"k", [
"l", ["m", "n"] 。
]
]]
]
结论
你设法解决了多少个问题?你花了多长时间?
作者介绍
c
codeye
V1