python基础

未结帖
0 720
ajian lucy 2017-02-09
悬赏:5飞吻

Python可以说是最简单的编程语言,任何学过c语言的人都能快速入门,其文本处理能力强大,是工程师必不可少的工具。

目录

上篇

什么是脚本语言

如何安装python

hello world

随意变换字符串和数字

定义一个简单函数

for, while, if…else…结构

下篇

强大的string文本处理

列表,元组,字典

读写文本文件

导入库来实现高级功能

建一个自己的库

在看过python的基本语法后,下面来看看python的高级功能。

7

强大的string文本处理

a、Python对文本就很强大的处理能力,文本中的任何一个字,或者几个字,都能作为他”切片”的对象。

s= “abcabc123123”#s是一段文本字符串

“bc” in s#返回 true,判断bc是否在s中

s.islower()#返回true, 判断s是否为全小写

s.split(“1”)#以1为分隔符切片分离,s中有两个1,整个s被切成三段,返回 一个列表,列表中有三个元素,abcabc,23, 23

s.find(“bc”) # 返回bc所在位置的第一个索引

s.replace(“123”, ”xyz”) #将第一个123替换成xyz

怎么样,是不是比perl晦涩的正则表达式要容易的多?类似的方法函数还有很多,需要的时候可以直接百度。

点号前面的s代表面向对象中的对象,而后面的函数被称作字符串类的方法,只有对字符串类才能使用这些方法,这就是最基本的面向对象操作。

b、第二个重点是字符串可以采用类似列表数组的方法来操作,比如一个字符串abc,可以把他当做一个数组来看,这个数组共三个字符元素,a和b和c

s1= “abc”

s2=“123”

s3=s1+s2

print s3#打印出abc123

print s3[2]#打印出s3的第三个元素c

print s3[1:5]#打印出s3的第2个到第5个元素

print s3[1:-2]#打印出第2个到倒数第2个元素

print s1[1:3]+s2[0:2] #打印出s1的第2第3元素加上s2的第1第2元素

s3[:5]+’defg’+s3[5:-1]#在字符串第5位后面插入字符串defg,s[:5]代表s的第1到5位,s[5:-1]表示s的第6到最后一位

下面这个是比较高逼格的用法,字符串也可以像数组那样用for循环遍历,每次取出其中一个元素

for c in s3:

if c==“1”:

print c

8

列表,元组,字典

a、什么是list列表

python中的list就相当于C语言的数组,但他又比C数组更强大,可以加入不同的数据类型,并且无需事先定义列表的长度,完全动态,类似于C的链表。形式如:

L=[“aaa”, ”bbb”, ”ccc”]#字符串组成的列表

L=[“aaa”, ”bbb”, ”ccc”, 5, 6, 7] #列表支持不同数据类型混合列表,C不行

上一节说过字符串也可以当成列表处理,但字符串和列表只是类似,并不完全相同,他们本质是两个不同的class。比如列表具有排序/堆栈功能,而字符串没有。

L[2]# L列表的第三个元素

L.append(“ddd”)#在尾部添加一个元素

L.count(“bbb”)#计算元素bbb出现的次数

L.insert(3,”ddd”)#在第三个元素处插入一个新元素

L.remove(“aaa”)#删除一个元素

L.reverse()#列表次序反转

L.sort()#列表排序,数字按大小排,字符串元素按ascii码

L.pop(2) #堆栈方法,弹出第3个元素

#和字符串一样,列表也使用for循环来遍历,依次取出列表中的元素赋值给a

for a in L:

print a

b、什么是元组

元组和列表类似,长的不一样,列表方括号,元组是圆括号

T=(1,2,3)#元组用圆括号表示

列表和元组的区别是,元组不可修改,那既然不可修改还有啥用呢。在python中元组往往作为系统函数的返回值来体现,我们再看一下之前创建多返回值函数的例子:

def test(x+y):

a = x + y

b = x – y

return a,b#函数有两个返回值

c= test(10,15)#两个返回值同时赋给一个值

print c#打印出元组(25,-5)

当一个函数具有多个返回值时,获取返回值有两种方法,分别赋值给多个变量,或者作为一个元组整体赋值给一个变量,元组不可修改就是怕把返回值的次序给打乱了。这和C语言多个返回值只能返回一个数组整体类似。

c、什么是字典

字典就是perl里的哈希,其本质是个二维数组,用大括号表示,好处是数组的索引值可以是字符串。例:

a = {‘Emily’: ‘China’, ‘Kathy’: ‘US’, ‘Jason’: ‘UK’}

冒号前面的被称为索引,冒号后面的被称为值,这样使用字典:

a[‘Kathy’]#返回US

字典的使用和列表类似,只是读列表第二个元素写法是a[1],而字典是a[‘Kathy’],看着更人性化些。

字典使用的方法和列表大多类似,如pop,in,del等,不再讲述。

9

读写文本文件

a=open("C:\ aaa.txt")#打开一个文本,句柄为a,默认为只读权限

b=a.read()#把文本a中全部内容读取到b

print b

a.close()#关闭a

a=open("C:\ bbb.txt","w")#打开一个文本,句柄为a,写权限

b=’aaaaaaaaaa’

a.write(b)#将字符串b写入文本a

a.close()#关闭a

当把文本读取到python之后,我们就可以用字符串那些强大的方法来做文本处理了。还有一个更常用的读文本方法,逐行读取

for line in open("C:\ aaa.txt "):

print line

这里会自动把文本中的每行用for循环遍历,每次只读取一行,对于几万行的特大文件非常有用,采用全部读出的方法就会很慢。

10

导入库来实现高级功能

和C语言一样,许多高级功能需要导入库才能实现,比如数学里的圆周率,就需要先导入math库,下面介绍几个常用的库的例子。

a、OS,常用于判断路径,文件夹内容

Import os#导入操作系统库

a = "C:\windows"

os.path.exists(a)#判断a路径是否存在

for filename in os.listdir(a):#获取a文件夹下全部文件和子文件夹名字

print filename

b、ctyps系统库,可以调用C写的文件,外部dll,windows API等

import ctypes

dll = ctypes.WinDLL('user32.dll')#调用windows的dll

dll.LockWorkStation()#锁定当前电脑

c、互联网库,可以后台读取网页数据

import urllib2

page = urllib2.urlopen('http://www.163.com', timeout=10)

data = page.read() #从后台以纯文本读取网易网页

print data

d、excel库,可以在后台操作excel哦

import xlwt#这个库得先到网上下

a=xlwt.Workbook()#新建一个空的excel,对象为a,在内存中

b=a.add_sheet("my_sheet", cell_overwrite_ok=1)#在a中新建一个sheet名字叫my sheet,对象为b

b.write(1,1,’abc’)#对b的第一行第一列写入内容abc

a.save("C:\test.xls")#保存a到硬盘

11

建一个自己的库

之前说的这些高级库,都是别人提供的,有些是互联网上下载的,爱好者编写提供的,有些是python官方本来就自带的库,有些是微软这些第三方的大公司提供的库。总的来说,库是别人写好一个函数集合,理论上,我们自己也可以写一个库。

首先,新建一个python文件,并且保存到Python系统安装路径

File 1 : my_lib.py

def copystring ( a ):#在这个库里随便写了个函数

b=a+a

return b

File 2: my.py

import my_lib#在第二个文件中调用自己写的库

a = “abc”

print my_lib. copystring( a ) #调用库中的函数

这里其实my_lib作为了一个对象被操作,其实这也是python的核心思想之一,万物皆为对象。


热忱回答0


最近热帖

近期热议

  1. javascript——prototype与__proto 9
  2. Mysql 中出现的Data truncated for column 3
  3. 在nginx中使用x-sendfile的解决方案 3
  4. 高版本jQuery面插件实现Ajax上传图片 1
  5. Thinkphp Socket.class.php 类的使用 1
  6. 使用ionic3创建第一个App 0
  7. ios-oc html5 0
  8. nginx.conf 0
  9. 基于ionic3.4.0的项目搭建 0
  10. php 缩略图 0