小编Hil*_*ani的帖子

为什么我需要rreverse函数的两个条件分支?

我做了一个练习,试图在另一个人的问题上使用我在这里找到的代码部分,但我发现我需要一部分代码,我不知道为什么要这样做.

我用于我的函数的完整代码是这样的:

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语句的差异时抛出错误是什么?为什么我的版本不正确?

谢谢!

python recursion python-3.x

5
推荐指数
3
解决办法
109
查看次数

避免在我的代码中使用多个(非嵌套的)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)

我怎么能写得更好?

提前致谢 :)

python if-statement

3
推荐指数
1
解决办法
48
查看次数

标签 统计

python ×2

if-statement ×1

python-3.x ×1

recursion ×1