学习python的几点感受

以下是个人的理解,才疏学浅,有不当之处望一起讨论共同进步。

 

没有变量类型声明。

首先来说说常用的C/C++变量类型声明的不足吧。

1. 有时候感觉繁琐且多余,比如STL容器的迭代器声明,明明编译器已经知道一个容器类型,其对应的容器迭代器类型也是知道的。比如,一个已知类型的变量给另外一个变量进行赋值时(没有类型转换),被赋值的变量类型应该和赋值的变量类型一致。幸好C11已经支持auto类型。

2. 有时候感觉比较麻烦。声明一个变量时,需要分析该变量的用途和范围。比如需要设计一个学生的分数变量。首先考虑这个变量的用途,可能需要有排序和计算的操作(高中上学那会儿经常进行的年级排名、学科排名、平均分计算之类的),因此我们需要一个整型变量(假若分数都是整数)。其次,考虑这个变量的值域范围,比如语文成绩满分是150,不会有负分,那么一个无符号的char就足够了。但如果这个变量存储的是四六级英语考试成绩的话,就得选择无符号的short类型了。

3. 有时候类型也非常方便。因为知道一个类型就知道其大概(void *除外)。比如一个int变量,就知道他是一个有符号的整型变量,他的值域是多少之类。比如一个最近在学习CUDA,关于设备信息有一个结构体类型cudaDeviceProp,从类型上可以看出每项属性的大致情况,如第一个char name[256],明显一个ASCII字符串。对该变量的处理方法也是比较清楚,一些常见的字符串处理方法都可以处理该变量。

再来说说Python的类型声明吧。

刚开始使用Python时,相比C++的1、2点,确实觉得Python真的很方便。只要想清楚这个变量的功能是啥,想一个好记易理解的变量名称就好了。但面对Python一个以前没有用过的第三库时,且出自于一个放荡不羁不在意变量命名的作者之手,对使用者简直是噩梦。比如变量名为record与records,file与file_path、file_name,各位可以看看这些变量会对应C++中什么类型。另外,本人非常痛恨在一个函数中随意使用不同名称但代表同一含义可以重复使用的变量。本来没有了类型,对变量的第一认识就没有了,还要去记忆这么多变量,还要去理解代码含义,真的很费劲。

最后,作为一个从C++老菜鸟的角度去学习Python这种无类型的语言时,总有各种不适感,变量类型声明首当其冲。在使用一个新的Python第三方库时,总以C++变量的角度去揣度一个Python变量到底对应的类型是啥。类似学习一门新的外语一样,总希望将新的语言用母语去替代,然后再去理解,再去使用。比如apple和苹果,都是表示一种圆圆的常见的水果。但是看到“apple”这个单词时,这种代替思维首先会翻译为“苹果”,然后再由汉字“苹果”,再想到苹果这个东西。本来语言都是代表的是同一种东西,经过代替再去理解,再去使用,总用起来特别不方便。

怎么去解决这个问题,后面经过更深入的学习后,再做分享。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值