如何优化用户输入阶乘的代码?精简行数且不使用库
阶乘代码精简优化方案
先看原代码逻辑:初始化变量a=1,循环输入值次数,每次用前一次结果乘当前循环的下一个数,逐次打印阶乘结果。下面给出几种符合要求的精简优化方案,全程不使用任何库:
一、保持逐次打印格式的精简版
精简到2行(可读性较好)
a=1 for i in range(1,int(input("Enter: "))+1): a*=i; print(a)
优化点:直接让循环变量i从1开始遍历到输入值,省去原代码里_+1的额外计算,同时把赋值和打印合并到循环行里,减少行数。
极致精简到1行(Python 3.8+支持)
a=1; [a:=a*i and print(a) for i in range(1,int(input("Enter: "))+1)]
利用列表推导式和赋值表达式:=完成计算与打印,一行搞定所有逻辑。
二、计算完成后统一打印最终结果的精简版
精简到2行
a=1 for i in range(1,int(input("Enter: "))+1): a*=i print(a)
先完成所有阶乘计算,最后一次性输出结果,逻辑清晰且行数更少。
极致精简到1行(Python 3.8+支持)
a=1; [a:=a*i for i in range(1,int(input("Enter: "))+1)]; print(a)
借助赋值表达式,把计算和打印合并到一行。
内容的提问来源于stack exchange,提问作者Ved Patel
相关产品推荐
相关产品推荐

