代码和报错如图所示:求指点

我知道这个意思是.isdigit不能接受整型数据输入,但是input不是会把输入的数字都变成字符串类型的吗?我输入什么都是变成字符串类型啊。所以为什么还会有这种报错提示?网上说要用raw_input(),但是现在的python3已经没有这个函数了,我用的是3.8









萧十郎
浏览 74回答 1
1回答

一只斗牛犬

之所以报错是因为while循环从第2次开始执行时, selectcourse这个变量的类型就变成 整型 了, 而整型是没有isdigit()函数的, 所以才会报错.咱们简单的过一下代码的执行过程:a.第12行执行后, 你输入的是2, 所以此时selectcourse这个变量是字符串类型值'2', 从你的提问来看,这一点你是理解的, 接着向下看b.然后就执行while True这个循环了, 我们先看这个while循环第一次执行, 第14行的if语句条件判断是true,因为2是数字, 所以if下的15,16行会被执行, 这块是关键, 第15行执行后, selectcourse的类型就不再是一开始的字符串类型了, 而是变成了整型; 16行打印输出就不讲了. 这是while True循环的第一次执行, 这次执行最最关键的就是将selectcourse这个变量的类型由字符串类型改为了整型(报错的起始点就在这).c.再看while循环的第2次执行, 第2次执行又到第14行判断if条件这了, 你的报错其实就是这会儿出现的, 因为第1次while循环已经将selectcourse这个变量的类型改为了整型, 所以第2次再去执行if的条件时, 就会报错了, 因为selectcourse此时是整型, 而整型是没有isdigit()函数的.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python