因为是初学python,所以在敲代码的时候总是碰到各种各样的问题,这里记录一下今天的学习中的一点小问题
第一个题目是:面试资格确认。
题目还是很简单的,就直接在IDLE中尝试了一下
![](https://i-blog.csdnimg.cn/blog_migrate/1ca702fc961d4ff3ce6b0cf667d2dd06.png)
可以看到,输入了age,subject,college,这里没什么问题,中间有点报错是用了中文的输入符号,改正了。
然而最后的if语句就开始报错,说语句的缩进有问题,这里我就有点奇怪了,感觉对的很齐啊,然后尝试了各种缩进,一直报错,好吧,最后
![](https://i-blog.csdnimg.cn/blog_migrate/abe7135b9a7a920661880876c9c1d142.png)
嗯,终于成功了。。。
python并不是你看着对齐了就对了,if前面没有空格,所以else前面也没有空格。
好吧,终于解决了一个小问题,再看下一题:用户输入若干个成绩,求所有成绩的总和。每输入一个成绩后询问是否继续输入下一个成绩,回答yes就继续输入下一个成绩,回答no就停止输入成绩。
![](https://i-blog.csdnimg.cn/blog_migrate/5cce6365802b64c238af363c56cd91e6.png)
好吧,又出现问题,应该是输入了中文字符,再来
![](https://i-blog.csdnimg.cn/blog_migrate/d582fb998af3bb6957240775c8d1b6d1.png)
报错:’raw_input‘没有定义,查了一下,因为我用的是python3.6.5,raw_input在python3.0版本后都被input替换了,重新改了一下:
![](https://i-blog.csdnimg.cn/blog_migrate/0298b661553263b81801500fa4c411fb.png)
这次终于没有问题了
又在python2.7.14中尝试了一下raw_input
![](https://i-blog.csdnimg.cn/blog_migrate/e4e0621f50868c653f54523ae606d4f6.png)
eval函数又出现了问题,eval在python3中经常被用来实现各种数据类型之间的转化,而input函数在python3中的输入都是以字符型处理的,但是在python2中是以数值型处理的,所以在python2中可以有以下两种写法:
![](https://i-blog.csdnimg.cn/blog_migrate/17623ae6e9d564e8bb04a38d169533ab.png)
将input改为raw_input,或者是去掉eval
![](https://i-blog.csdnimg.cn/blog_migrate/2d6c7768415d39a514c4b960766d60c9.png)
总之,感觉python虽然用起来比较方便,但是它各个版本之间的区别,以及其中的一些规则还是很麻烦的,好吧,任重而道远啊