刚学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[i]); } 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
分享到:
相关推荐
【Python学习笔记-初识Python】 在编程世界中,Python是一种高级、通用的解释型编程语言,以其简洁、易读的语法和强大的功能而受到广大程序员的青睐。本笔记将带你初识Python的魅力,理解其核心概念,并为你提供...
Python 基础学习笔记 本笔记是基于《Python 语言程序设计基础(第 2 版)》第一部分初识 Python 语言的笔记,涵盖了计算机的概念、程序设计语言、Python 语言概述、Python 语言开发环境配置、程序的基本编写方法等...
这份学习笔记基于《Python语言程序设计基础(第2版)》第一部分初识Python语言第一章程序设计基本方法。计算机是根据指令操作数据的设备,具备功能性和可编程性两个基本特性。计算机技术发展阶段包括计算机系统结构...
Python 基础学习笔记 本笔记基于《Python 语言程序设计基础(第 2 版)》第一部分 初识 Python 语言,涵盖了计算机的概念、程序设计语言、Python 语言概述、Python 语言开发环境配置、程序的基本编写方法等知识点。...
本教程涵盖了从Python编程语言的初识、编程环境的准备到高级特性的深入理解,为学习者打造了一个系统的学习路径。 教程首先从Python编程语言的基本元素入手,包括程序文件结构、编程风格和环境设置,让学习者对...
初识Python,最基础的操作就是使用`print`函数输出信息。例如`print('Hello World')`,在Python解释器中执行这条语句,屏幕上将显示"Hello World"。无论在命令行还是IDLE中,输出都会立即显示在下一行。 【Python的...
"Python百天读书笔记 | 初识Python 1day"是针对Python初学者的一份学习资源,旨在帮助读者在100天内逐步掌握Python的基础知识。 1. **Python解释器的安装** Python解释器是执行Python代码的引擎。官方提供的...
人工智能编程基础篇包括初识Python、基本数据类型、Python的流程控制、数组操作、文件操作、绘制需要的图表、函数、面向对象、异常、集合与概率、学点统计学、数据管理与分析等内容。人工智能篇包括人工智能导论、...
起初学习Python是在2016年,那时扩展毕业,由于面临着找工作的不确定性,便学习了相关的网络安全知识,此时初识Python。 在正式工作之后,遇到了各种手工,重复性的工作,例如操作excel,操作网页去录相关系统信息等...
本人自主学习Python时,每一天的心得笔记,很高心分享给大家,共同学习,一起进步!!!
python爬虫学习笔记(一)——初识爬虫 python爬虫学习笔记(二)——解析内容 开始实战爬取豆瓣TOP250电影 首先还是重新复习下爬虫的基本流程: 发起请求 获取响应内容 解析内容 保存数据 1. 发起请求 首先观察豆瓣...
这篇笔记涵盖了Python编程的多个重要方面,旨在帮助学习者从初识到深入理解Python的各种技术。 首先,02_python目录下的内容可能包括Python的基础语法,如变量、数据类型(如整型、浮点型、字符串、列表、元组、...
- **博客文章**:分享优质的博客资源,如作者在知乎、微博等社交平台上发布的Python学习笔记。 ##### 2. 社区参与 - **社交平台**:鼓励加入Python相关的社交群组,如GitHub、Stack Overflow等,与其他开发者交流...
第一部分是初识Python编程基础,包括语言排行榜、技术雷达、Python之禅等基础知识。第二部分是认识自动化测试,包括自动化测试的场景和特点、类型、要学什么等内容。第三部分是单元测试,包括单元测试介绍、测试框架...
本文档是一份整合了多种资源的个人学习笔记,旨在为已有编程基础的人快速掌握Python3,同时也适合作为无基础者的自学大纲。 ### 一、初识Python 1. Python源代码文件通常以`.py`为扩展名,注释以`#`开头。 2. ...
这绝对是一份好看的而且用心的学习笔记了 数据库 高级MySQL笔记 极客时间-MySQL45讲整理 Python基础 初步基础 初识GraphQL 数据结构 leetcode(microsoft_question) 操作系统 计算机网络 Docker基础&& k8s部署demo...
3. 通用性:Spark 是一个全面的数据处理平台,能够处理批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(MLlib)和图计算(GraphX)。这种统一的解决方案使得开发者可以在一个框架内解决...
这些笔记内容覆盖了从Python基础到Django高级特性的广泛范围,对于想要深入学习Django的开发者来说是一份宝贵的资源。通过逐步学习和实践,可以提升Web开发技能,更好地利用Django框架构建高效、安全的Web应用程序。
学习笔记 文章目录seleniumphantomjs与chromedriver浏览器对象browser selenium selenium为Web自动化测试工具,可运行在浏览器,根据指令操作浏览器,如点击、下拉等。如果我们将selenim和Chrome/phantomjs浏览器...
01.入门笔记之看雪Web安全学习及异或解密示例; 02.Chrome浏览器保留密码功能渗透解析及登录加密入门笔记; 03.Burp Suite工具安装配置、Proxy基础用法及暴库示例; 04.实验吧CTF实战之WEB渗透和隐写术解密; 05.IDA...