Python新手求助:如何用函数实现从10到0的数字打印?
帮你解决Python函数无输出的问题
嘿,作为Python新手遇到这种问题很正常,我来一步步帮你理清问题所在:
第一个核心问题:函数定义后没调用
你写了from10to1()函数,但没有主动调用它!在Python里,仅仅定义函数只是告诉程序“有这么个功能”,必须显式调用函数名加括号,程序才会执行函数里的代码,这就是你在NetBeans里看不到输出的主要原因。
第二个问题:range对象的打印问题
另外,你在函数里直接打印range(10, 0, -1),在Python3中range返回的是一个可迭代对象,不是直接的数字列表,直接打印会显示range(10, 0, -1)这样的结果,而不是你想要的10到0的数字序列(而且你说要打印到0,原range的结束值是0,左闭右开的规则下不会包含0,得改成range(10, -1, -1)才行)。
修正后的代码示例
如果你想和之前一样用空格连接打印所有数字,可以这样写:
def from10to1(): # 生成10到0的数字序列(左闭右开,所以结束值设为-1) num_sequence = range(10, -1, -1) # 将每个数字转为字符串,用空格拼接后打印 print(" ".join(str(i) for i in num_sequence)) # 必须调用函数才会执行里面的逻辑 from10to1()
如果想逐个打印每个数字(每行一个),可以用循环遍历:
def from10to1(): for i in range(10, -1, -1): print(i) # 调用函数 from10to1()
小提示
- 记住:定义函数只是“声明功能”,调用函数才是“执行功能”
- Python3的
range是懒加载的可迭代对象,需要遍历或者转成列表(比如list(range(10, -1, -1)))才能看到具体数字 range(start, stop, step)的规则是包含start,不包含stop,所以要包含0的话,stop必须设为-1
内容的提问来源于stack exchange,提问作者morteza
相关产品推荐
相关产品推荐

