Flask新手编写1到指定数字显示程序仅输出1问题求助
问题原因
- 自定义模块中的
pri函数逻辑错误:return语句会直接终止函数执行,第一次循环i=1时就会返回结果,后续循环完全不会运行,因此只能得到输出1。 range(1,n)为左闭右开区间,实际生成的数字范围是1~n-1,就算循环正常运行也无法输出用户输入的数值本身,不符合「1到用户输入数值区间」的需求。
修复方案
1. 修改自定义模块的pri函数
你可以先把所有要输出的数字存入列表统一拼接后再返回,同时修改range的结束参数为n+1:
import time def pri(n): res = [] for i in range(1, n+1): res.append(str(i)) # 此处用逗号分隔数字,你也可以替换为其他分隔符 return ', '.join(res)
如果需要每行显示一个数字,也可以用HTML换行符拼接,Flask返回时会自动识别标签:
def pri(n): res = [] for i in range(1, n+1): res.append(str(i)) return '<br>'.join(res)
2. 可选优化:补充Flask路由的GET请求处理
当前路由仅处理了POST请求逻辑,直接访问/disp路径会返回空结果,可以补充跳转逻辑跳转到表单页,避免异常。
内容的提问来源于stack exchange,提问作者Rohan Kuruganti
相关产品推荐
相关产品推荐

