求知若饥,虚心若愚

python_不用循环打印1-1000

题目:屏幕上打印1-1000这1000个数, 不许使用循环语句/条件语句,不许使用?:算符。 不许在源代码中用列举输出语句的办法傻打,比如一千个print语句不行,不再赘述其他傻打行为, 大家都能领会精神。
解答:
newline='\n'
numbers=map(lambda x:str(x),range(1,1000))
print newline.join(numbers)

 

复制代码
import sys
sys.setrecursionlimit(1005)
def pr(n):
  print '%d' % n
  # t = int(1/(n-1000))
  if n < 1000:
    pr(n+1)
    # return None
  # return None
pr(1)
复制代码
在网上查了,发现python默认的递归深度是很有限的,大概是900多的样子,当递归深度超过这个值的时候,就会引发这样的一个异常。
 解决的方式是手工设置递归调用深度,方式为:
import sys   
sys.setrecursionlimit(1000000) #例如这里设置为一百万

 

posted @   初行  阅读(3551)  评论(2编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述

点击右上角即可分享
微信分享提示