作业疑问:应当考虑防止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”数字“字符串判断的补充。不知考虑是否正确,烦劳解答。

http://img.mukewang.com/climg/5f10ed290957118606050579.jpg

写回答

4回答

好帮手慕燕燕

2020-07-17

同学思维严谨,逻辑能力非常强,棒棒哒,加油

0

易吉云

提问者

2020-07-17

思考了一下,可以直接使用字符串"1","2","3","0"直接和input()获取的值直接比较,可以不用转换成数字判断 

0

好帮手慕燕燕

2020-07-17

同学你好,您的思路没有问题,同学作业中的原代码是可以的,考虑了异常情况,对当前作业题目进行了拓展

祝学习愉快~~~~

0

易吉云

提问者

2020-07-17

提问无法编辑?上述第一段输入有一处错误"abcdint"应该为"abc"


作业已批复,但对于第一点有异议,如果输入的是“非数字”的字符串,则int(Your_Choice)会报错,程序无法正常执行,例如输入"abcd",则int("abcd")报错 ValueError: invalid literal for int() with base 10: 'abcd'


0

0 学习 · 8160 问题

查看课程