这是漫谈python系列的三篇,
本篇会简单的介绍 Python的基本语法和数据结构。
转眼间,暑假已经来临。 小李还在苦苦的学习Python,小李却没有以前踏实了。“强哥,Python 的书我看了一遍又一遍感觉还是没有入门呢”
志强听了,开始给这个小学弟开导了:“学习东西要从基础开始,金庸大侠在《天龙八部》里面郭靖光练习扎马步就练习了3年呢;方法不得当啊。 ”
“是啊, 志强你那肯定有办法”
“来, 给你看一份武林秘籍”。说完,志强给了他一张学习Python 的思维导图.
Python 思维导图
”有了这张四维导图,你就知道学习的基本顺序啦“,志强得意洋洋的说道,“我们开始吧, let `s go !”
“师兄,我要快速入门!”
“搭建环境在前章中已经讲过了,我给你讲Python 的基础语法”
1. 快速入门
基础语法
a. 代码块和缩进对齐
”有java/C++编程基础的你 , 应该知道我们是用{} 来表示一段代码块,用; 用于语句的结束符号。而在Python 的编程思想中,开发者认为{} 和;几乎是没有用的。代码块可以通过缩进对其来表达代码块的逻辑,而不是使用大括号—-{} “
“厉害了,我的志强!” 小李听了志强的介绍,很是惊讶。“居然可以使用仅仅使用缩进(空格)来表示代码块。不用大括号?这成不成啊”
志强:“哈哈,当然是可以的,仔细回想一下。python 有两大特性,一是 简介, 二是 可读性好。很多人都想接力避免改变,因此对于使用多年{}的人来说,你可能讨厌or不想使用缩进作为代码块。那么,希望你从今天开始学会儿适应, 等半年后在看看这种方式。也许你会发现生活中没有大括号,并不会像你想象的那么糟。 这个放到生活里面同样适用,人嘛,总是需要学会适应变化的,物竞天择,适者生存。”
“是不是似乎还是不太明白? 我们举个例子吧,分别用python\java 来实现对00后的判断。小李你来写java,我写python 的,一会儿我们对比一下。”
来,让我们看看例子:
Python 中的代码块用缩进开表示
对比java:
java中判断00后
小李看过以后,确实发现有所不同,”确实,python里面没有了() 以及{} 还有分号 呢 ,这对于零基础的人来说很方便。可是,师兄我们是怎么来判断语句是不是在同一个代码块里面呢? “
志强:“这个很简单。我们通过 上下语句是否拥有相同距离的缩进。如果两条相邻的语句缩进距离相同,那么他们一定是在同一个代码块里面,就像这个: ”
5行和6行相邻,而且缩进距离相同,属于同一个代码块;但是4行与5行缩进距离不同,所以不属于同一个代码块
你,明白了么? PS: 不明白请留言。
b. 变量不需要声明
弱类型的动态语言, 使用变量前无需声明; 这点和javaScript很像。但是弱类型语言不代表python没有数据类型。
2. Python 数据类型
2.1 数字
数字提供了标量的存储和访问的方式。它是不可更改的类型。所谓的不可更改意味着只要更改数字的值就会分配新的空间。python支持多种数字类型:整型、长整型、布尔型、浮点型。
a 如何创建数值对象,并且赋予其值?
intA=1; #整型
LongA=1L; #长整型
floatA=3.14159 #浮点型
doubleA=3E # 双精度
doubleB=60.
ComplexA=12+3J # 复数
b 如何删除数字对象
del intA
del ComplexA , floatA, LongA
“Python 数字类型的操作大概就是这样啦. “志强给小李讲完之后长舒一口气
“志强,我明白了. Python 里面数据是没有办法显示声明的;于是我们只能通过在赋值的过程中指定类型.对吧”
“可以这样说. 通过在数字后面加上L,F,等方式指定类型”
“那这样看来, 操作数字的时候依然需要数据类型转换”
“你说的没错,差点把这个忘了. 这点涉及到数字对象的操作, 且听我慢慢道来……”
c 有关数字对象的操作
“我们在学习其他的语言的时候, 都会保证两个数字相加的时候,必须保证操作的数字是合适的类型. 这点在Python中依旧适用. “
“那如果两个数字类型不同呢?”,小李说.
“哈哈, Python 有一套自己的转换规则.”, 志强说.
“首先,如果操作数字是同一个类型,那么没有必要进行转换;
否则,Python 会检查一个操作数字是否可以转换为另一个操作数的类型.
如果可以,那就返回转换的结果 ; 当然也不是所有的转换都是可以的,比如: 让一个复数去转换成一个非负数类型,让一个浮点数自动的转换为integer类型…”
“我天,那得怎么才能记住呢?”
志强听了小李的话, 胸有成竹的说道:”这个简单. 和java的自动转机制是差不多的, Python只能自动转化为较`大`的类型, 而转化为较小的类型可能需要强制转换”.
“所谓的大小, 就是表示的范围了. 你看,我们在学习高中的数学时候,经常会这样说: 复数的集合范围 大于 浮点数 ; 而浮点数的集合范围又大于 整数… “
“这样理解起来确实是方便多了. 看来学东西还是需要技巧的, 死记硬背是不行的”
“然也,哈哈”