小编第一次接触到python是上次有个张童鞋问我关于一些网络爬虫抓取网页的问题,那时候小编只是进行了python环境的安装,并到网上down一些代码进行简单的学习,并没有深入系统学习python。
关于python的安装,相信网上的诸多大神已经写了详细的教程,这里小编就不再重复这项繁琐的工作。
在此,小编只是将自己对python的学习进行简单的记录,供需要的童鞋参考。
首先,python是一种弱型语言。所谓弱类型语言就是相对于C/C++这类强类型语言来说的,像C/C++等,在使用一个变量的时候必须进行声明,如 type name,而在python中,在使用变量的时候并不需要进行变量类型的声明,可直接通过赋值来使用,如 name = value。
接着来说说python中的类型,目前小编在python中接触到的类型有int、float、list、tuple(元组)、set(集合)、str(字符串)、file,对于不同的类型可以使用type(value)来进行确认识别。现在针对不同的类型进行简单的说明:
- int 整型,和C/C++中的int类型相同,有编程的经验的童鞋应该都清楚,但是,如果要从内存上来分析这个类型,目前小编对pythong的功力还不够,不能确定是否和C/C++同样是4个字节。
- float 浮点型,在python中小编没有发现在C/C++中的double类型,对于float的精度是否够用,小编目前也是不得而知了。
- list 列表,在小编看来,list是python中比较灵活的一种数据类型,它是由中括号括起来的并以逗号进行元素区分的序列,如[a,b,c],list支持存放不同的元素类型,可以同时存放多种数据类型,包括下面将要提到的tuple和set,甚至是嵌套存放list,其强大堪称牛逼~~
- tuple 元组,元组和list有点相似,也是可以同时存放多种数据类型的元素,同样,也可以嵌套存放tuple类型的元素。在小编看来,tuple和list的不同之处就在于,tuple的元素是不可修改的,而list的元素是可以修改的,感兴趣的童鞋可以自行编程做一个简单的测试,这里可以简单提一下,list和tuple可以通过和C/C++中类似的做法,即可以通过中括号和索引的形式来tuple或者list中的元素进行引用,而对于 list[index] 可以作为左值,但是tuple[index] 则不可。
- set 集合,对于该类型,小编接触的不多,在这里只简单说明几个小编发现的需要注意的地方,对于set的元素类型来说,它不支持list类型的元素,也不支持set类型的嵌套存储,报错信息是无法对该元素进行哈希操作,这点对于集合来说是可以接受的,有编程经验的童鞋对hash应该不陌生,不懂的孩纸请自行百度~~
- file 文件,当调用open()操作打开指定文件后将返回file类型的值,通过该值可以进行文件的相关操作,如write、writelines、read、readline、readlines等。
说完了类型,接下来说说python中几种常用结构语句:
- if分支语句
if condition<span style="color:#ff0000;">:</span> dosomething elif<span style="color:#ff0000;">:</span> dosomething else<span style="color:#ff0000;">:</span> dosomething<pre name="code" class="python">
while语句<pre name="code" class="python">while condition: dosomething else: dosomething
for 语句<pre name="code" class="python">for i in sequence: dosomething else: dosomething
像C/C++中switch语句,在python中小编还没有接触到,这点还行各位需要的童鞋自行百度之~~
这里有个重要的地方需要强调,就是该出现冒号的地方,以及该缩进的地方,也就是使用tab键,所有出现关键字语句的行末都需要添加冒号,而且与常用的高级语言不同的是,在python中通过tab键的对齐来标识为同一个代码块,也就是说python通过tab对齐来替代高级语言中的花括号。
讲完了几种常用的结构语句之后,接下来简单说说python中的函数定义问题:
在python中,函数的定义是通过关键字def来表示的
def funcName( val1, val2):
dosomething
dosomething
return something
</pre>和常用的高级语言C/C++不同,python中的函数没有显示声明返回值类型(可能是因为弱类型语言的缘故,不知道返回的类型,所以索性就不声明返回类型了),但是不表示python不能返回数据,相反,python中的函数可以一次性返回多个,如:<pre name="code" class="python">def testFunc2( val1, val2 ):
val1 = 0
val2 = 0
return 10, 20, 30
需要注意的是,在参数列表中,不需要对形参的类型加以说明,而且,python的函数同样支持默认值的形式,如:
def testFunc3( val1 = 1, val2 = 2 ):
print val1, val2
值得一提的时,python中的函数关于实参到形参的对应问题也是比较具有灵活性的,也是就说在进行函数调用的时候,可以在括号对形参进行指定赋值,从而能够打乱原有的声明顺序,但是在小编看来这点平时需要的地方不多,至少小编还没有发现值得一用的地方(虽然小编入手python只有三天时间~~)
说完了python的函数,接下来说说python关于字符串的几个常用的操作(字符串的操作是学习一门语言的亮点所在):
- python中的字符串有单引号、双引号或三双引号括起来。
- python中的字符串支持加法操作,即str1+str2可以实现两个字符串的拼接
- islower()、isupper()用来判断大小写,lower()、upper()用来实现大小写的转换
- strip()、lstrip()、rstrip()用来实现空白符的去除操作
- isalnum()用来判断当前字符串是否只包含数字和字母,isalpha()用来判断当前字符串是否只包含字母,isdigit()用来判断当前字符串是否只包含数字
- isspace()用来判断当前字符串是否全是空格
- startswith()用来判断当前字符串是否以指定的字符串开始,endswith()用来判断当前字符串是否以指定的字符串结束
- python中的字符串支持格式化操作,如
这里要注意到字符串和括号之间的百分号!s1 = 'hello%dworld%d'%(10,20)+'%s'%('haha')
- python字符串支持索引操作,但不支持赋值操作,这里可以这么理解,在python中的字符串是一个常量,那么常量不可修改,因此自然不可以对python中的字符串的元素通过索引进行赋值操作
说完了python的字符串,现在来说说python的文件操作。在上面小编也简单地提到了几个文件操作的函数
在python中的文件操作相对于C/C++还是比较简单的,但是,两者的操作模式是相同的:
- 指定操作模式打开文件
- 根绝不同的需要对文件进行读取
- 文件操作结束后对文件进行关闭操作。
open(fileName,mode)
其中mdoe包括r,w,a,+,b,即读、写、附加、创建、二进制等模式,需要注意的是,+表示当文件不存在的时候将创建文件。
接着对python的几个常用的文件操作进行简单的说明
read()#当不指定大小的时候,将读取所有的内容
readline()#读取一行,包括'\n'
readlines()#读取所有行,返回list
write()#写入字符串
writelines()#以list或者tuple或者set的形式写入多个字符串,如obj_file.writelines((obj1, obj2, obj3, str(11)))
值得一提的是,file支持for的迭代器操作,如
for i in open( fileName, mode )
do something with i
需要再强调的是,python对于文件的操作只是针对字符串,所有当需要对其他数据类型进行都写入操作的时候都需要对其进行str()类型转换。
说完了python中的文件操作之后,接下来再讲讲关于python中的序列切片问题,序列切片也是小编认为的python的牛逼能力所在:
seq[start:end:step]
其中,seq表示序列,这里可以是list,tuple或者str,start表示切片的起始索引,end表示切片的结束索引,end所指的元素不包括在切片中,step表示步长,可正可负,其中从左到右表示正方向,当出现start-end和step同号的时候将出现空的序列结果。
ls = [1,2,3,4,5,6,7,8,9]
print ls
print ls[0:4]
print ls[0:4:2]
print ls[2:4]
print ls[2:4:2]
print ls[4:0]
print ls[4:0:-1]
print ls[4:0:-2]
最后来说说python的输入和输出
对于python的输入
raw_input(prompt)
prompt作为提示信息出现在终端界面,然后从键盘缓存读取信息,作为字符串返回,可以根据不同需求将其转换为需要的数据类型int(),float()等
对于python的输出
print message#将message输出到终端界面,这里的message可以是多个字段,然后以逗号作为空格,这样就能够连续输出了,同时在输出结束后自动回车换行
至此,小编将自己三天的python笔记全部收录完毕,如果不当或错误之处,欢迎指出给予纠正,谢谢。