Python 2.7 print函数内获取用户输入实现阶乘计算问题
Python2 阶乘练习代码修正方案
当前代码无法正常运行的核心问题共两处:
raw_input()读取的用户输入默认是字符串类型,直接传入阶乘函数做数值运算会触发类型不匹配报错,必须先转为整型才能参与乘法、大小比较逻辑。- 你自行添加的
x = raw_input("enter a number: ")、result = FirstFactorial(x)属于冗余代码,会和题目要求强制保留的print语句重复触发输入请求,运行时需要连续输入两次数字才能得到结果,直接删除即可。
满足题目“不得删除指定print调用”要求的可运行完整代码如下:
def FirstFactorial(num): fact = 1 # 入参统一转整数,兼容raw_input返回的字符串格式 num = int(num) while num > 0: fact *= num num -= 1 return fact # keep this function call here print FirstFactorial(raw_input())
运行逻辑说明:
执行到题目要求保留的print行时,会先触发raw_input()等待用户输入数字,拿到输入内容后传入阶乘函数完成计算,最终直接打印返回的阶乘结果。如果需要给用户增加输入提示,只需把代码中raw_input()改为raw_input("enter a number: ")即可,不会违反题目规则。
内容的提问来源于stack exchange,提问作者Pedro Silva
相关产品推荐
相关产品推荐

