您的位置:首页 > 编程语言 > Python开发

Python基础

2016-02-29 14:45 531 查看

1Python是什么?

Python是一种面向对象,解释型的计算机程序语言,与1989年底被Guide van Rossum发明,第一个公开发行版于1991年。Python源代码同样遵循GPL(GNU General Lincense)协议。

2Python的特点?

简单、易学:Python是一种代表简单注意思想的语言,语法简单,专注于解决问题而不是搞明白语言本身。

可移植性:Python的源代码开源,Python已经被移植在许多平台上面(经过改动使他能够工作在不同的平台上)。支持的平台包括:Linux、Windows、FreeBSD、Mac等。

解释型:和编译型语言不同,比如C/C++程序运行需要从源码编译成为计算机可以识别的二进制文件。但是Python程序只需要Python解释器将源代码转换称为字节码的中间形式,然后再翻译为计算机语言使用的机器语言并运行。

面向对象:Python既支持面向过程的编程也支持面向对象的编程。面向过程:程序由过程或仅仅是可重用的代码的函数构建起来。面向对象:程序由数据加功能组合而成的对象构建起来的。

可扩展性:可以在Python程序中使用C/C++编写的关键代码。

可嵌入性:可以吧Python嵌入C/C++程序(类似Shell语言),从而向程序用提供脚本功能。

丰富的库:Python的标准库很强大,支持正则表达式、文件操作、线程、数据库、网络、GUI等

2Python如何使用?

使用Python之前,需要安装Python的运行环境。

安装完成之后,在cmd命令解释器里面输入python后,进入python的运行环境,比如:



3Python基础知识

当做计算器使用,计算2+2:



整除1/2



想要获得小数点数字,需要使用浮点型数字进行相除1.0/2、1/2.0、1.0/2.0、1/2.:



取余(模除)运算符------x % y的结果为x除以y的余数:



幂(乘方)运算符:



在这里-3**2的结果和(-3)**2不同,是因为运算符的优先级,优先级从高到底依次为:()、**、-

3.1长整数

Python可以处理非常大的整数:



3.2十六进制和八进制

十六进制:



八进制:



3.3变量

变量基本上就是代表(或者引用)某值的名字。比如:



x=3是对变量x进行赋值,x*2是对变量x进行引用

3.4语句

语句既指令,告诉机器需要做哪些事情,比如print语句、赋值语句:



语句y=10是赋值语句,将数字10赋值给变量y;语句print y是打印语句,将变量y的值打印出来;

3.5获取用户输入

很多时候,需要让用户告诉程序一些内容,程序如何获得用户输入的内容的呢?



使用input(…)语句来获取用户输入



语句x = input("x:")是将用户输入的数字赋值给变量x;语句y =input("y:")是将用户输入的数字赋值给变量y;语句x + y是计算变量x加上变量y的值;

3.6函数

函数就像小型的程序一样,可以来实现特定的功能。计算乘方(2**3):



还可以进行比较复杂的计算:



除了计算乘方的函数pow以外,还有其他很多这样的函数,比如得到绝对值的函数abs:



对浮点数进行四舍五入的函数round:



3.7模块

模块是导入python来增强其功能的扩展,使用特殊的命令import来导入模块。



语句import math是使用import导入了模块;语句math.floor(32.9)是按照“模块.函数”的格式使用math模块的floor函数,函数floor的功能是向下取整;

使用int函数进行取整:



在去人自己不会导入多个同名的函数(从不同模块导入)的情况下,希望不要每次调用函数的时候都加上模块名字。可以使用import命令的另一种形式:



语句from math import sqrt按照“form 模块 import 函数”的形式导入math模块的sqrt函数;语句sqrt(9)是对数字9进行开方计算;



事实上,可以使用变量来引用函数(或者Python中大多数对象)。语句foo = math.sqrt将模块math的sqrt函数赋值给变量foo,语句foo(4)既调用math模块的sqrt函数对数字4进行开方计算;

3.8复数和cmath



使用sqrt函数对-1计算的时候会报错,但是在数学的概念里面,负数的平方根是虚数。那为啥sart计算-1的时候还会报错呢?因为它只能处理浮点数,而虚数(复数,实数和虚数之和)是完全不同的。引用另外一个模块cmath(complex math,复数)来处理:



这里没有使用from cmath import sqrt语句导入cmath模块的sqrt函数,因为一旦使用了这个语句,就没有办法使用普通的sqrt函数。除非真的需要使用from这种形式导入模块,一般都使用普通的import。



语句(1+3j) * (9+4j)中的3j、4j表示是虚数,虚数均以j(或者J)结尾,就像长整数使用L一样。同时也可以看出来,python语言本身就提供了对复数的支持。

3.9保存并执行程序

在Windows下面使用IDLE进行python程序的开发,在“开始菜单”找到“IDLE”并打开:





选择“File”、“New File”打开一个新的文本编辑框,在新的文本编辑上面选择“File”、“Save”保存程序(其实就是纯文本程序)在指定的路径下面:



在里面编辑代码,然后选择“Run”、“Run Moduel F5”来运行程序:



运行结果:





语句name = raw_input("What is your name?");是将输入的内容赋值给变量name,作用和input是一样,但是input和raw_input还是有区别的。

运行的结果:



输入:chisj,然后回车:



3.10通过命令执行python脚本

将代码改成这样,通过cmd命令编辑框,找到我们的hello.py文件:





使用命令python hello.py执行我们的python脚本:



因为我们在文件hello.py最开始的位置加上了说明python解释器的位置

#!/usr/bin/python

这样,我们才能在任意位置执行python的脚本。

3.11注释

井号(#)在python中有些特殊,在它右边的一切内容都会被忽略而不进行执行:



运行结果:



3.12字符串

比如我们打印语句中:

print "Hello,World!";

"Hello,World!"就是字符串,字符串(”一串字符”)是使用引号””包裹起来的字符。

有的使用我们看到语句print ‘Hello,World!’;的结果和上面的语句结果一样,那么有什么区别么?

事实上,没有区别,因为单引号和撇号是一样的,使用的是否会有歧义:

语句print "Let's Go!"的结果为:

Let's Go!

语句print 'Let's Go!'的结果为:



使用转义字符来解释单引号

语句print 'Let\'s Go!'的结果为:

Let's Go!

转义字符\对于双引号”也同样适用:

语句print "\"Hello, World!\" she said"的结果:

"Hello, World!" she said

3.13字符串拼接

语句print "Hello, " + "World!"的输出结果:

Hello, World!

是将两个字符串"Hello, "和"World!"拼接一起了。

3.14字符串表示,str和repr

下面代码的运行结果:

tmp = 42

print "the tmp is " + tmp

运行结果:

Traceback (most recent call last):

File "C:/Python27/study_python/hello.py", line 23, in<module>

print "the tmp is " + tmp

TypeError: cannot concatenate 'str' and'int' objects

是因为语句print "the tmp is " + tmp中"the tmp is"是字符串,tmp是数字,不能使用+进行连接在一起。

那么如何将tmp转化为字符串呢?

有三种方式:str、repr和`x`(`是反引号)

tmp = 42

print "the tmp is " + `tmp`

的结果为:

the tmp is 42

tmp = 42

print "the tmp is " + str(tmp)

和代码:

tmp = 42

print "the tmp is " + repr(tmp)

的结果都是一样的。

3.15input和raw_input的比较

使用input输入字符串:



如果是在输入的字符串加上引号””



使用raw_input函数,它会把所有的输入当做原始数据(raw data),然后将其放入字符串中:



3.15长字符串、原始字符串和Unicode

1长字符串

需要写一个非常非常长的一个字符串的时候,需要跨多行,那么可以使用三个引号代替普通引号:



当然双引号”””Like This”””一样可以,对于普通字符串在需要换行的时候使用反斜线对换行进行转义:



2原始字符串

原始字符串对于反斜线并不会特殊对待。在某些情况下这个特性非常有用,如正则表达式。在普通字符串中,反斜线有特殊的作用:他会转义,让你在字符串中加入通常情况下不能直接加入的内容,如:



但有时候,这并非是想要的结果。如果希望在字符串中包含反斜线再加上n?如:

答应DOS路径“C:\nowhere”



我们可以对反斜线进行转义字符处理:



如果一个字符串里面有多个反斜线的时候就需要多个反斜线进行转义:



在这样的情况下,原始字符串就派上用处:



原始字符串就是子啊字符串开头加上r

我们希望也能像平时一样使用转义字符,但是这样最后出书的字符串包含了转义所用的反斜线:



不能在原始字符串结尾输入反斜线,也就是字符串最后一个字符不能是反斜线:



那么如何处理呢:



3 Unicode字符串

Python的普通字符是以8位的ASCII码存储,而Unicode字符串则以16位的Unicode字符存储,这样就可以表示更多的字符集了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: