Python入门学习

摘要

近学习了python学习入门,所以想把简单的东西总结出来。

python安装

我自己是在fedora系统下学习的,我安装python的方法就是:

sudo dnf install python

只需一个命令装好了python,我使用python的方法还只是在vim和python自带的命令行下使用,也没有什么python编程神器,有是大家有什么更好的编辑器也顺便求个推荐。

装好了python后,我们以python命令启动python交互式解释器:

 

这里写图片描述

 

程序的输入输出

在python中使用print来进行程序的输出,以一个例子来说,我们把一个字符串赋值给变量myString,先用print来显示变量的内容,之后用变量名称来显示。

通常在代码中,我们用print语句输出变量内容,而在交互式解释器中,不仅可以用print语句显示变量,而且还可以用变量名显示变量的原始值。

 

这里写图片描述

 

注意,在仅用变量时,输出的字符串是用单引号括起来了的。这是为了让非字符串对象也能以字符串的方式先是在屏幕上,即它显示的是该对象的字符串表示,而不仅仅是字符串本身。引号表示你刚刚输入的变量的值是一个字符串。

print语句调用str()函数显示对象,而交互式解释器则调用repr()函数来显示对象。

使用下划线(_)在解释器中有特殊的含义,表示最后一个表达式的值。

print语句可以与字符串格式操作符(%)结合使用,可实现字符串替换功能,这一点和C语言十分的相似。

 

这里写图片描述

 

程序输入和raw _input()内建函数

从用户那里得到数据的输入的最容易的方法是使用raw_input()内建函数。它读取标准输入,并将读取到的数据赋值给指定的变量。也可以使用int()内建函数将用户输入的字符串转换为整型。

 

这里写图片描述

 

上面的例子只用于文本输入。下面是输入一个数值字符串(并将字符串转换为整型int()函数)的例子:

 

这里写图片描述

 

如果不使用int()内建函数将字符串转换为整型值,就将它看做字符串,只有转换为整型值后才能进行数学运算。

注释

python使用#符号标示注释,从#开始,直到一行的结束都是注释。

 

这里写图片描述

 

有一种叫做文档字符串的特别注释。你可以在模块,类或者函数的起始添加一个字符串,起到在线文档的功能,以函数举例:

 

这里写图片描述

 

与普通注释不同,文档字符串可以在运行时访问,也可以用来自动生成文档。

操作符

+ - * / // % **

加,减,乘,除,取余都是标准操作符。Python有两种除法操作符,单斜杠用作传统除法,双斜杠用作浮点数除法(对结果进行四舍五入)。传统除法是指如果两个操作数都是整型的话,它将执行的除法的商是比商小的最大整数。

还有一个乘方操作符,双星号(**),相当于指数 a ** b 相当于 a^b。

操作符的优先级是+和-优先级最低, *,/,//,%优先级较高,单目操作符+和-优先级更高,乘方的优先级最高。

Python也有标准比较操作符,比较运算符根据表达时的值的真假返回布尔值。

< , <= , > , >= , == , != , <>

 

这里写图片描述

 

Python目前支持两种不等于比较操作符,!= 和 <>。

python同样提供了逻辑操作符。

and or not

使用逻辑操作符可以将任意表达式连接在一起得到一个布尔值。

 

这里写图片描述

 

最后一个例子在其他语言中通常是不合法的,不过Python支持这样的表达式,即简单又优美,但实际上是下面表达式的缩写:

 

这里写图片描述

 

变量和赋值

变量名仅仅是一些字母开头的标示符——所谓字母开头意指大写或小写字母,另外还包括下划线(_)。其他的字符可以是数字、字母或下划线。python变量的大小写是敏感的。也就是说“case”和“Case”是两个不同的变量。

Python是动态类型语言,也就是说不需要预先声明变量的类型。变量的类型和值在赋值那一刻被初始化。

 

这里写图片描述

 

数字

Python支持五种基本数字类型,其中三种是整型类型。

有符号整形 int eg:0101 84

长整型 long eg:29979062458L -841401 布尔值True False 浮点数float eg:3.14159 4.2E-10 复数eg:6.23+1.5j

Python 的长整型所能表达的范围远远超过C语言的长整型,Python长整型仅受限于用户计算机的虚拟内存总数。

从长远来看,整型与长整型正在逐步统一为一种整型类型。再也不会报整型溢出错误,结果会被自动转换为长整型。或许以后的版本中,两种整型类型将会无缝结合,长整型后缀“L”也会变得可有可无。

布尔值是特殊的整型。尽管布尔值由常量True和False来表示,如果将布尔值放到一个数值上下文环境中(比如将True与一个数字相加),True会被当作整型1,False会被当作整型0.

字符串

Python中字符串被定义为引号之间的字符集合。Python支持使用成对的单引号双引号,三引号(三个连续的单引号或双引号)可用来包含特殊字符。

python字符串通常有单引号(’…’)、双引号(”…”)、三引号(”“”…”“”)或(”’…”’)包围,三引号包含的字符串可由多行组成,一般可表示大段的叙述性字符串。在使用时基本没有差别,但双引号和三引号(”“”…”“”)中可以包含单引号,三引号(”’…”’)可以包含双引号,而不需要转义

使用索引操作符([])和切片操作符([:])可以得到子字符串。子字符串有其特有的索引规则:第一个字符的索引是0,最后一个字符的索引是-1.

加号(+)用于字符串的连接,星号(*)用于字符串重复。

 

这里写图片描述

 

 

这里写图片描述

 

列表和元组

可以将列表和元组当成普通的“数组”,它能保存任意数量任意类型的Python对象。和数组一样,通过从0开始的数字索引访问元素,但是列表和元组可以存储不同类型的对象。、

列表和元组有几处重要的区别。列表元素用中括号([])包裹,元素的个数及元素的值可以改变。元组元素用小括号(( ))包裹,不可以改变(其实他们的内容可以)。

元组可以看成制度的列表。通过切片运算([]和[:])可以得到子集,这一点与字符串的使用方法一样。

列表:

 

这里写图片描述

 

元组:

 

这里写图片描述

 

字典

字典是Python中的映射数据类型,由键-值对构成。几乎所有类型的Python对象都可以用作键,不过一般还是数字或者字符串最为常用。

值可以是任意类型的Python对象,字典元素用大括号({})包裹。

 

这里写图片描述

 

代码块及缩进对齐

代码块通过缩进对齐表达代码逻辑,而不是使用大括号。因为没有了额外的字符,程序的可读性更高。而且缩进完全能够清楚的表达一个语句属于哪个代码块。当然,代码块也可以只有一个语句组成。

if语句

标准的if语句语法如下:

if expression

if_suite

如果表达式的值非0或者为布尔值True,则代码组if_suit被执行;否则就去执行下一条语句。代码组是一个Python术语,它由一条或多条与句组成,表示一个子代码块。Python的条件表达式不需要用括号括起来。

if expression:

if_suite

elif expression2:

elif_suite

else:

else_suite

while循环

标准while条件循环语句的语法类似if。再说一次,要使用缩进来分割每个子带码块。

while expression:

while_suite

语句while_suite会被连续不断地循环执行,直到表达式的值变成0或False,接着Python会执行下一句代码。类似if语句,Python的while语句中的条件表达式也不需要用括号括起来。

 

这里写图片描述

 

for循环和range()内建函数

Python中的for循环与传统的for循环(计数循环)不太一样,它更像shell脚本里foreach迭代。Python中的for接收可迭代对象作为其参数,每次迭代其中一个元素。

 

这里写图片描述

 

print语句默认会在print语句的最后加上一个换行符。如果在print语句最后加上一个逗号(,)就可以改变这种行为。

 

这里写图片描述

 

由上图,我们发现带逗号的print语句输出的元素之间会自动添加一个空格。通过指定输出格式,程序员可以最大程度的控制输出布局,也不用担心这些自动添加的空格。

下面我们介绍两个函数:

len(obj) 返回对象的函数 range([start,]stop[,step]) 返回一个整型列表。起始值是start,结束值是stop-1,start默认值是0,step默认值为1

 

这里写图片描述

 

列表解析

列表解析表示我们可以在一行中使用一个for循环将所有值放在一个列表中:

 

这里写图片描述

 

我们还可以挑选符合要求的值放入列表。

 

这里写图片描述

 

文件和内建函数open(),file()

我们使用open函数打开文件:

handle = open (file_name, access_mode = ‘r’)

file_name变量包含我们希望打开的文集爱你的字符串名字,access_mode中‘r’表示读取,‘w’表示写入,‘a’表示添加等等。

如果open()成功,一个文件对象句柄会被返回。所有后续的文件操作都必须通过此文件句柄进行。

下面的代码提示用户输入文件名,然后打开文件,并显示内容到屏幕上:

filename = raw_input('Enter file name: ')

fobj = open(filename, 'r')

for eachLine in fobj:

print eachLine,

fobj.close()

错误和异常

当检测到一个错误的时候,Python解释器就发生一个异常,并显示异常的详细信息。程序员可以根据这些信息快速的定位问题并进行调试。

要将代码添加错误检测即异常处理,只要将他们封装在try-except语句中。try后就是打算管理的代码。except之后的代码组就是处理错误的代码。

try:

filename = raw_input('Enter file name: ')

fobj = open(filename, 'r')

for eachLine in fobj:

print eachLine

fobj.close()

except IOError, e:

print 'file open error: ',

函数

类似于其他语言,Python中的函数使用小括号(())调用。函数在调用前必须先定义。如果函数中没有return语句,就会自动返回None对象。

Python是通过引用调用的。这意味着函数对内参数的改变会影响到原始的对象。不过事实上只有可变对象会受此影响,对不可变对象来说,他的行为类似按值调用。

定义函数

定义一个函数的语法由def关键字紧随其后的函数名,再加上该函数需要的几个参数组成。函数参数是可选的,所以用括号。这个语句是由一个冒号(:)结束的,之后便是代表函数整体的代码组。

 

这里写图片描述

 

如何调用函数

 

这里写图片描述

 

注意包含参数的小括号不能省略,哪怕没有参数。

默认参数

函数的参数可以有一个默认值,如果提供有默认值,则参数以赋值与句的形式提供。它表示函数调用时如果没有提供这个参数,他就取这个值作为默认值。

 

这里写图片描述

 

模块

模块是一种组织形式,它将彼此有关系的Python代码组织到一个个独立文件之中。模块可以包含可执行代码,函数,和类,或者这些东西的组合。

当你创建了一个Python源文件,模块的名字就是不带.py后缀的文件名。一个模块建立后就可以从另一个模块中使用import语句导入这个模块来使用。

如何导入模块

import module_name

如何访问模块函数或模块变量

module_name.function()

module_name.var

目前评论:0 条

发表评论