Python基础

来源:互联网 发布:淘宝网床上用品 编辑:程序博客网 时间:2024/05/23 13:04
  1. 初识Python

  跟学习所有的编程语言一样,首先得了解这门语言的编程风格和最基础的语法。下面就让我们一起来了解一下Python的编程风格。

1.逻辑行与物理行

  在Python中有逻辑行和物理行这个概念,物理行是指在编辑器中实际看到的一行,逻辑行是指一条Python语句。在Python中提倡一个物理行只包含一个逻辑行,这样写出来的代码比较清晰明了。当然你也可以在一个物理行写多个逻辑行,但是此时必须以分号";"来进行分隔。

print "hello python!"print "i love python"

  上面这个例子中有两个物理行和两个逻辑行,每个物理行只有一个逻辑行。这种风格下,每条语句以换行结束。(当然如果在每条语句后面加上分号也是没有错误的)

print "hello python!";print "i love python"

  这个例子只有一个物理行,但是一个物理行中有两个逻辑行,此时在两条语句中间必须以分号进行分隔。(第二条语句后面的分号可要可不要,看个人喜好)

2.Python中的缩进

  Python中的缩进是比较特殊的,在其他编程语言中一般使用大括号来表示程序逻辑,而在Python中缩进是用来表示程序逻辑的。也就是说在Python代码中如果缩进有问题,程序会报错。在Python中并未严格指定缩进的空白数目,但是要求同一层次的代码必须有相同的缩进空白数目。比如:

 
def fun1(a,b): c=3; c*=a+b return c def fun2(a,b):    c=3;    c+=a+b    return cprint add(1,2)print minus(1,2)
 

  在上面的代码中,定义了2个函数fun1和fun2,在fun1中,有三条语句,这三条语句属于同一层次,缩进空白数都是1;在fun2中,缩进空白数都是4。不过不建议像上面那样写代码,最好所有的代码都使用相同缩进,一般使用4个空白作为缩进。

3.Python的注释

  在Python代码中以‘#’来标识一条语句是注释。

4.Python的续行

  在python中如何代码过长,可以在需要换行的地方加上'\'即可表示续行。

father_name \                      =  'jack'

  father_name = 'jack'

  效果一样。

5.Python有main函数吗?

  在C语言和Java中都有main,其作为程序的入口点,但是在Python中是没有main的,Python作为一种解释性语言,它会从头至尾顺序执行你需要执行的文件。

 

2.Python的基础语法

  在对Python有了基础的认识之后,下面来了解一下Python的基础语法,看看它和C语言、java之间的基础语法差异。

一.变量、表达式和语句

  Python中的语句也称作命令,比如print "hello python"这就是一条语句。

  表达式,顾名思义,是指用运算符将运算对象连接起来的式子,在Python中表达式是语句的一种(注意在C语言和Java中表达式是表达式,语句是语句,表达式不可能是语句)。举个例子,在Python中,"3+2"这是一个表达式,同时也是一条语句,但是在C和java中完全是两个不同的概念。

  变量,用来存储可变的值,同其他的解释型编程语言一样,在Python中使用变量不需要预先定义,也不需要定义其类型,只需要在使用时进行定义和初始化即可。比如:

i=3print i

  另外,在Python中,同一变量名在不同阶段可以存储不同类型的数据(至于其中的缘由在以后会慢慢作解释)。比如:

i=3print ii='hello python'print ii=2.3print i

  Python中的变量的命名规则同C语言中的变量命名规则基本一样。不过在Python中以下划线开始或者结束的变量名通常有特殊的意义,比如__name__这个是每个模块保留的内置属性。

二.数据类型和运算

  在Python中数据类型有两种:数值类型和字符串类型。数值类型包括整型(包括长整型)、浮点型以及复数类型(复数虚部以j或J标识)。

  

  Python中的算术运算符主要有 +(加法),-(减法或者取反),*(乘法),/(整除) ,% (取余),**(乘方)

  在这里要注意的是,整除运算和取余运算。

 

  在Python中整除运算最终值取的是中间值的floor值,上面的结果就很容易解释了。

  对于字符串来说,最常用的有+和*两种运算,+表示把两个字符串进行连接,*表示连乘。比如:

  

  注意:一个字符串*0结果是空字符串,一个字符串*一个负数也是空字符串。

  在Python中,逻辑运算符分别是and、or和not(这个跟C语言中的逻辑运算符不一样),真为True,假为False。

三.函数基础

  在Python中定义函数用def关键字,基本形式如下:

def function_name(parameters):    block

  Python函数定义和C语言不通,只需要指定函数名和参数,注意函数名后面有个冒号。下面定义了一个求和函数:

def add(a,b):    return a+b

  关于Python的基础语法今天就谈这么多了,其他的相关知识会稍后陆续进行讲解。

 

3.Python中的字符串

       可能大多数人在学习C语言的时候,最先接触的数据类型就是字符串,因为大多教程都是以"Hello world"这个程序作为入门程序,这个程序中要打印的"Hello world"就是字符串。如果你做过自然语言处理方面的研究,并且用Python去做过相关实验,你肯定会体会到Python在字符串处理方面相对于其他语言的明显优势之处。今天我们来了解一下Python中的字符串,看看它的用法。

一.Python中如何声明字符串

  在Python中声明一个字符串通常有三种方法:在它的两边加上那个单引号、双引号或者三引号。

  如:

  

  从上面可以看出三种声明方法的效果是完全一样的,在Python中用这三种声明方法来声明字符串意义完全等同的,即'hello world'和"hello world"以及'''hello world'''是没有任何区别的。但是会有人问:既然是完全等同的,为什么要弄出三种声明方式呢?下面看一下这几个例子:

  在Python中提供了这几种方法,使得使用起来更加方便灵活(当然也可以使用转义字符去解决上面报错的地方)。

  在这里要注意的是,

  1)在Python中没有类似C语言中char这种类型的字符串,也就是说即使是单个字符也是字符串。

  2)Python中的字符串一旦声明,是不能进行更改的,即不能通过对某一位置重新赋值改变内容。

  

二.Python中的字符串类型

  Python中的字符串有两种数据类型:str类型和unicode类型。str类型采用的ASCII编码,也就是说它无法表示中文。unicode类型采用unicode编码,能够表示任意的字符,包括中文、日文、韩文等。

  在python中字符串默认采用的ASCII编码,如果要显示声明为unicode类型的话,需要在字符串前面加上'u'或者'U'。

  下面看一段代码

print ''print u''print 'python'print u'python'

  这段代码的运行结果为:

  

  从运行结果可以看出,如果是中文的话,不采用unicode类型,输出的会是乱码。

三.转义字符和原始字符串

  同C语言中一样,Python中也有转义字符,用反斜杠'\'来表示对后面字符进行转义。

  比如上面例子中的问题就可以用转义来解决:

  

  如果你编写过Java程序,并且使用过Java中的正则表达式,你可能会对Java正则表达式深恶痛绝(我自己就是),因为稍不注意就会出错,里面有太多的转义,而且看起来也很繁琐杂乱。在Python中,你不必再为这个问题烦恼了,因为Python提供了原始字符串,顾名思义,就是保留原始字符的意思,不对反斜杠及反斜杠后面的字符进行转义,声明原始字符串的方法是在字符串前面加上'r'或者'R'。

  

  在这里要注意:在Python中行尾结束符始终为'\n',不论Python程序在哪个操作系统下运行。在Linux环境下编写C语言时,换行符为'\n',而在windows下为'\r\n'。编写Python程序不用担心这种因运行环境不同引起的不兼容问题。

四.用户输入以及格式化输出字符串

  在Python中最常用的从键盘获取输入的函数是raw_input()和input()。但是这两个函数有很大的区别:

  raw_input()以字符串的形式返回用户输入的一切内容;

  而input()却不是这样,它会根据输入内容的形式确定返回的形式(可能有点拗口)。下面看个例子就明白了:

  

  从这个例子显而易见可以看出两者的区别,同样输入123,raw_input()返回的是字符串123,而input()返回的是整数123。个人建议一般情况下使用raw_input()获取输入,这样能避免程序中出现一些不必要的麻烦。

  同C语言一样,Python中也提供了格式化输出。

  Python中的格式化输出和C语言类似,基本格式如下:

  print '....%formmat..' %(var...)

  当var只有一个时,括号可以省略。

  

 

 

 

 

0 0