我做了一个练习,试图在另一个人的问题上使用我在这里找到的代码部分,但我发现我需要一部分代码,我不知道为什么要这样做.
我用于我的函数的完整代码是这样的:
def rreverse(s):
if s == "":
return s
else:
return rreverse(s[1:]) + s[0]
Run Code Online (Sandbox Code Playgroud)
但是我只使用了else作为声明,而我没有得到我希望得到的结果.
def recur_reverse(x):
if x != "":
return recur_reverse(x[1:]) + x[0]
Run Code Online (Sandbox Code Playgroud)
我得到TypeError说"不支持的操作数类型为+:'NoneType'和'str'."
第一个例子正常工作的逻辑是什么,第二个例子在这个if语句的差异时抛出错误是什么?为什么我的版本不正确?
谢谢!
我正在编写一个函数来扫描特定的地图(2D数组).为了避免在阵列外部扫描斑点,我写了一些if语句,但感觉这是错误的,长期的,低效的方式.
H是地图的高度值,int W表示宽度,int c是当前点,包含x和y值的元组.
floorH = c[0]-D
floorW = c[1]-D
ceilingH = c[0]+D+1
ceilingW = c[1]+D+1
if floorH < 0:
floorH = 0
if floorW < 0:
floorW = 0
if ceilingH > H:
ceilingH = H
if ceilingW > W:
ceilingW = W
Run Code Online (Sandbox Code Playgroud)
我怎么能写得更好?
提前致谢 :)