python - 如何阅读此功能
问题描述
def cat(xx):
if (xx<1):
return 5
if (xx<2):
return 2
if(xx<3):
return 4
if(xx<4):
return 7
if(xx<5):
return 8
if(xx<6):
return 6
if(xx<7):
return 1
if(xx<8):
return 9
if (xx<9):
return 3
else:
return cat(xx-9)
print(cat(38))
python给我的答案是4。我不知道为什么它给了我这个数字。我知道有多个 if 语句而不是 elif 但我不知道这是如何导致这个答案的
解决方案
的堆栈调用cat(38)
将是:
print(cat(38))
return(cat(38-9))
return(cat(29))
return(cat(20))
return(cat(11))
return(cat(2))
<-- will return 4 since `xx<3` will evaluate to true
推荐阅读
- python - 如何为图例的单个值设置唯一颜色
- database - Laravel 多对多关系集合为空
- python - 基于公共字段将两行合并为一
- mysql - 在带有 IN 子句的第二个查询中使用查询结果
- go - Go 无法识别安装在 ubuntu 18.04 上的 Goose
- postgresql - Postgres 在 UPDATE 语句中包含 REINDEX
- css - 角度 ng-table 的水平滚动
- python - Python Pandas:TypeError:只能将整数标量数组转换为标量索引
- css - CSS 样式的最高优先级
- spark-cassandra-connector - 这条消息的含义是什么 StorageProxy.java:2358 - 模式与 Cassandra debug.log 一致