设为首页 收藏本站
查看: 932|回复: 0

[经验分享] Python学习笔记一(初识Python)

[复制链接]

尚未签到

发表于 2017-4-21 12:43:31 | 显示全部楼层 |阅读模式
  刚学Python不久,因为自己的工作主要是使用.NET,所以很多思考的东西都会和C#相关。特别是在理解上,总爱和C#比较进行看看有什么区别  
  Array 和Tuple
Tuple在Python中定义成不可变的List,我的直觉理解就是一个Array(但这个很奇怪,Python中有一个标准模块就是Array,暂时没用过,以后再具体分析吧)。
对于Tuple来说初始化的方式很奇怪
userid=1,2,3,4,5
或者
userid=(1,2,3,4,5)
两者得到的结果是一样的。想这种userid=1,2,3,4,5 C#是肯定通不过的,而这种做法反而像C#的int a,b,c,d,但这表示的定义多个int的数据类型。  
  没有了开始和结尾的“{}”
C#的函数,类的定义...等都会出现这个符号。Python改为以缩进和冒号的方式来代替代码块。写多了Python你会发现这确实是个很美的事情。因为C#编写时本身代码规范就强调要缩进。现在把{}都去掉了,少敲了不少键盘啦。

函数默认参数
发现这个也是很折腾人的东西。因为和C#的确有不少的区别
1:Python的函数可以定义默认值,这个感觉像MSSQL的存储过程
2:Python的函数还可以使用关键字参数
def Get(name,id,age)
    pass
Get(name='333',id=1,age=444)
  引用《简明Python》中的说法
“这样做有两个 优势 ——一,由于我们不必担心参数的顺序,使用函数变得更加简单了。二、假设其他参数都有默认值,我们可以只给我们想要的那些参数赋值。”,这一点,的确比C#方便不少。  
  函数的可变参数
  Python:
def fprintf(*args):
    for i in args:
        print i
fprintf(1,2,3,4,"ssss")  
  在C#中会这样定义
public static void UseVariableParameters(params int[] list) { for ( int i = 0 ; i < list.Length ; i++ ) { Console.WriteLine(list); } Console.WriteLine(); }  
  如果单纯从这上面看没什么优势,但Python 同时支持List、Tuple、Dictionary 作为参数一次传入。 List、Tuple的参数是以 *arg传入的。Dictinary是以**arg传入的。  
  >>>args = [3, 6]
>>> range(*args)  
  >>> def parrot(voltage, state='a stiff', action='voom'):
>>> d = {"voltage": "four million", "state": "bleedin' demised", "action": "VOOM"}
>>> parrot(**d)  
  这个只能说Python的语法太灵活啦  
  For IN 形式的循环
这个也很有意思,我发现在Python中已经没有了以前学习的语言中的for(int i;i<cout;i++)这种形式了。使用了For i in range(10) 这种方式,的确是个进步。而且C#也通过Linq的方式模拟了这个实现

过滤类别语法
很Cool
  [mapping-expression for element in source-list if filter-expression]  
  >>> li = ["a", "mpilgrim", "foo", "b", "c", "b", "d", "d"]
>>> [elem for elem in li if len(elem) > 1]  
  C#的Linq现在也可以实现这个功能,但还是Python比较Cool ,和简单  
  and 和 or 的特殊性质
Python中and 和or 左右返回的不是bool而是相应的结果。
and 如果为假返回and左边的值,如果为真返回右边的值
or 返回第一个为真的值,如果都是假返回最后一个值
  但这样确有一个C#没有的好相关,相当于一个二元操作符了。
在C#中经常这样写三元操作符和
string name;
name = String.ISNullOrEmpry(name)?String.Empty: "username is:" + name  
  而如果C#也支持Python的这种概念的话就可以简单写出
name = name and "username is :" + name
很希望C#能支持类似的语法  
  list对象的分片 (slice) 和 Copy
具体不多说,只是觉得比C#的list用起来方法,特别是希望.NET  以后可以支持这个语法
  shoplist[:5] 返回序列的一段返回内的值
shoplist[:]返回整个序列的Copy

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-367431-1-1.html 上篇帖子: 23本python高清电子书 下篇帖子: Python学习总结-01----Python基础
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表