Python基础
来源:互联网 发布:淘宝网床上用品 编辑:程序博客网 时间:2024/05/23 13:04
- 初识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只有一个时,括号可以省略。
- Python基础
- Python基础
- Python基础
- Python基础
- python基础
- Python基础
- python基础
- Python基础
- python 基础
- Python 基础
- python基础
- Python基础
- Python基础
- python基础
- Python基础
- python基础
- python基础
- Python基础
- (五)抽样和抽样分布、区间估计
- [编程练习]字符串相关
- HashMap、HashTable、LinkedHashMap和TreeMap
- R语言数据挖掘值关联规则挖掘
- js事件
- Python基础
- POJ 3187 Backward Digit Sums
- group by 深入总结
- HDU2896AC自动机模板
- javascript 实现压缩文件夹
- 线段树区间维护hdu3308
- Android编译后的目录结构
- PHP字符串处理
- HTML基础