首页 > 代码库 > 初学python 记录一些易错点
初学python 记录一些易错点
1.区分字符串与数值
话说在c语言这个强类型语言中,各变量类型被强制的区分开来,类型转换工作也必须由程序员显式完成,所以c语言的字符串与数值自然能区分的很清楚。
不过在弱类型的语言中,许多麻烦的类型转换操作解释器都会偷偷地帮你完成了。尤其是php,那叫一个方便简单,纯数字组成的字符串能直接与数值相加,实际用起来,我们经常没有注意到纯数字的字符串与数值没有什么区别。
如
1 <?php2 $a1="5"+8;3 $a2=5+"8";4 $a3=5+8;5 $a4="5"+"8";6 //上面四句表达式的值,结果是一样的
因为php的解释器会按照需要自动的转换字符串类型和数值类型。在php中,加号+就是相加,管你是字符串还是数值,并且额外弄了个点号.表示字符串连接。
再看python中,加号放在字符串之间,表示的是字符串连接,放在数值之间,才表示相加。
所以,一个经常犯的错误就出现了,看如下代码:
1 num1=input("请输入第一个数字:")2 num2=input("请输入第二个数字:")3 sum=num1+num24 print("这两个数之和是:",sum)
原因在于input()返回的是一个字符串类型。我们可以在交互窗口试一试:
Type "help", "copyright", "credits" or "license" for more information.>>> a=input("enter a num")enter a nume>>> a=input("enter a num\n")enter a num3>>> a‘3‘>>>
因此,我们使用input()函数输入后得到的其实是一个包含数字的字符串。
那么使用加号表示将这两个字符串合并,‘3‘和‘2‘合并自然是‘32‘了。
所以,以后如果想使用input()函数输入一个数值,在得到结果后一定要记得使用int()将字符串类型转换为数值类型,否则会出现莫名其妙的问题!
2.空格和制表符
试试在一个正常的语句前面加上一个空格?
在其他如c语言中,这么做一点影响都没有。
但是在python中,这么做解释器会报错:IndentationError: unexpected indent
具体细节我也不是很清楚,目前猜测是解释器故意这样干的,目的是强制程序员养成良好的编程习惯,类似于强制缩进这种做法。
3.函数默认参数务必使用不可变对象
留个坑,以后补充
初学python 记录一些易错点
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。