作业疑问:应当考虑防止int()报错
来源:4-2 项目作业
易吉云
2020-07-17 08:30:53
作业已批复,但对于第一点有异议,如果输入的是“非数字”的字符串,则int(Your_Choice)会报错,程序无法正常执行,例如输入"abcdint",则int("abcd")报错 ValueError: invalid literal for int() with base 10: 'abcd'
注释的while循环部分是作业解答的原始内容,主要是防止输入非数字字符串导致程序执行报错。如果去掉该部分,在进行if…elif…else语句判断之前,程序就会因为上述错误而停止运行。原始内容的else其他也是对接受输入的为不是0-3”数字“字符串判断的补充。不知考虑是否正确,烦劳解答。

4回答
好帮手慕燕燕
2020-07-17
同学思维严谨,逻辑能力非常强,棒棒哒,加油
易吉云
提问者
2020-07-17
思考了一下,可以直接使用字符串"1","2","3","0"直接和input()获取的值直接比较,可以不用转换成数字判断
好帮手慕燕燕
2020-07-17
同学你好,您的思路没有问题,同学作业中的原代码是可以的,考虑了异常情况,对当前作业题目进行了拓展
祝学习愉快~~~~
易吉云
提问者
2020-07-17
提问无法编辑?上述第一段输入有一处错误"abcdint"应该为"abc"
作业已批复,但对于第一点有异议,如果输入的是“非数字”的字符串,则int(Your_Choice)会报错,程序无法正常执行,例如输入"abcd",则int("abcd")报错 ValueError: invalid literal for int() with base 10: 'abcd'
相似问题
回答 2
回答 2