码迷,mamicode.com
首页 > 编程语言 > 详细

python语法基础

时间:2015-07-29 00:54:23      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:

1.列表、元组
一个:列表应该是长成这个样子的list_name = [item1,item2,item3]
一个元组的样式应该是这样的:tuple_name = (item1,item2,item3)
两者区别:列表可以更改其中的内容,但是元组一旦被声明了是不能改变的。

2. 典初步
如果有其他语言背景的同学肯定知道关联数组或者哈希表。在python中他们是以“字典”的形式存在的,表现形式是: 键—值 (key—value)
在生活中我们会发现很多数据是“键-值”来组织的。比如一个家庭结构中:
父亲:李龙 
母亲:刘女神 
哥哥:李虎 
弟弟:李豹 
姐姐:李曼曼
下面我们来实际操作一下
family = {‘father’:’dragon lee’, ’mother’:’liu’, ’brother1’:’tiger lee’, ’brother2’:’leopard lee’, ’sister’:’manman lee’} 
print family
这里有几点需要强调:几乎所有类型的对象都可以作为“键”,不过一般还是以数字或者字符串最为常用;所有类型的对象都可以作为“值”,甚至是一个列表,每个“键—值”的搭配都是用逗号“,”来隔开。字典要用“{}”花括号来包裹。

3.判断初步
if-else 示例:
num = raw_input("please enter a number : ") 
num = int(num) 
if num <= 0: 
 print "the number is below 0" 
else: 
 print "the number is over 0"

4. while循环
while 条件: 
     执行语句(如果条件满足的情况下)
示例:
counter = 0 
while counter <3: 
     print counter counter += 1
5.循环语句之 for
python中的for 循环与传统的(计数器)循环不太一样。如果你之前接触过shell脚本的foreach迭代,每次迭代其中的一个元素。
示例:
items = [1,2,3,4,5] 
for item in items: 
     print item
备注:想在一行输入 不换行则可以:print item,    加上逗号,因为print默认给每一行加一个换行符

6.range() 函数
range()函数会生成一个数字列表,具体列表依据传入的参数不同而定。
比如:range(n)        会生成一个0,1,2,3,4…n-1 的列表 
     range(m,n)      会生成一个m,m+1,m+2,…n-1 的列表
     range(m,n,k)    会生成一个m,m+k,m+2k,…n-1的列表
7.函数
技术分享
示例:
def showMyName(name): 
    print name
说明:让我们来分析下,关键字”def”是告诉解释器:我要写一个函数了 ! “showMyName”就是这个函数的名字,这个函数需要传入一个变量才能工作,这个变量的名字叫:name。别忘记要在末尾加一个”:“,他是告诉解释器,后面的这些内容是这个函数体内部的内容。具体是哪些内容呢?一般其他的语言会直接把它们放在一对“{}”中,在python中,我们不用花括号,我们用代码的缩进来展现一个程序内部的内容。
调用:
showMyName("jack wang")
打印结果:jack wang

8.python对象
python使用对象类型来存储数据,任何类型都是一个对象。 python 的对象都拥有三个特性:名字、类型、值,如同一个人。
    “名字”是它的唯一的身份来标识自己,所以这个名字应该在“一定范围内”具有唯一性。
    “类型”决定了这个对象可以保存什么样类型的值,可以进行什么样的操作。
    “值”表示了对象的数据项。
举个例子: i = 10
这里就声明了一个对象,它的名字叫i,是一个int(整数),它的值是10。在声明一个对象的时候,我们使用等号(=)。值得注意的是:在这里并没有显式地写出它是一个int(整数),当你给他赋值的时候,计算机会自动识别出来它是一个int。

9.变量
对象(变量)的名字不是可以随便起的,它可以由字符、数字、下划线(_)组成。但是,它不能用数字作为开头,不能有空格。
示例:
数字: 1234 
字符串:"apam" ‘god‘ 
表: [1,[1,2],”name”] 
元组: (1,(1,2),”name”) 
字典: {”food”:”bean”,”drink”:”cocacola”} 
文件: myFile = open(‘xxx.txt’,’r’) 
其他类型:None, Boolean 等等。

10.数字
python 同时支持8进制和16进制的数字。
8进制(以数字0开头): num2 = 017 
16进制(以“0x”开头): num3 =0x92
下面来看看长整型(就是很大很大的整数),
需要注意的是:python中的长整型与c或其他编译语言中的长整型不同,它不需要范围是32位或者是64位。python的长整型长度至于你机器支持的(虚拟)内存的大小有关。换句话说,它可以表达很大很大的数值。那么怎么表示一个长整型呢,在后面加一个小写的“l”就可以了。
例如:num = 123456789012345678901234567890l (想要多长就多长)
11.复杂的运算
在python中当我们要表达乘方的意思的时候使用**    例如 3**3=27
示例:
import math
print math.pi
print math.sqrt(64)

12.字符串
A.一致性原则:在表示一个完整的字符串的时候,在字符串的两头,要么全是双引号,要么全是单引号就可以。
B.复杂的一种情况是:如果字符串中本来就带有符号呢?
    一种解决方法是:用双引号来包裹整个字符串。如:print "what‘s your name?"
    一种更好的方法,隆重推出反斜杆符号“\”:我们通过反斜杠符号来告诉计算机,这里的引号不是用来标记字符串,而是字符串本身的字符之                        一。如:print "what\‘s your name?"
C.如果字符串太长我想分几行来写怎么办?    用三引号(""")
如:
text = """Hello, what is your name?
My name is hanmeimei
And you?
My name is lilei"""
print text
D.还有一个问题,如果想要打印出一个字符串的某个字符应该怎么做呢?
技术分享
#打印第三个字符
str = "python"
print str[2]
E.字符串相关有用的函数
    Find()函数是一个基本的查找操作,它返回传入参数的首位的位置
       如:str = “mengma.com” 
           print str.find(“ng”)   
           结果:2
        replace()函数会对字符串进行搜索,然后替换掉符合要求的字符
            如:print str.replace(“ma”,”ba”) 
          结果: ‘mengba.com’
        split()函数可以依照传入的参数将字符串进行拆分
       如:s = ‘www.mengma.com.cn’ 
          print s.split(‘.’) 
          结果:[‘www’,’mengma’,’com’,’cn’]
13.内建函数
内建函数:绝大多数函数是我们自己写的,但是日常工作中有一些函数实现的功能是非常基本的,并且大家对结果的要求都一致,这些函数就预先被写好允许大家进行直接的调用,我们称之为“内建函数”。
如:
type(23) 
print int("32") 
print int(3.13)
14.数学函数
我们首先用Import引入了模块:math。然后就通过“.”来直接调用math中的函数以及变量了。可以看到,通过math中内置好的函数,我们可以完成很多科学计算,而根本不用重写这些复杂的函数。
如:
import math
print math.sqrt(4)
print math.pi
print math.sin(30)
15.函数的组合
    可以看到结果,试想如果我们把这些都写在playSong这个函数里,这个函数该有多么复杂!更为重要的是,我们在这里做了一个解耦的工作,当第一句歌词需要修改的时候,我们只需要在printLyrics1中修改即可,改正的结果就可以反映在其他调用它的函数中。也许你现在还感受不到,因为例子中只有一个函数调用了printLyrics1,当有很多函数都在调用它的时候,优势就会非常明显:一次修改,处处适用。
示例:
def printLyrics1():
    print "what I got to do to make you love me "
    print "what I got to do to make you care"
def printLyrics2():
    print "what can I do when lighting strikes me"
    print "and wake to find you not there"
def playSong():
    printLyrics1()
    printLyrics2()
    print "it‘s sad,so sad,it‘s sad sad situation"
playSong()

16.函数变量的适用域
在编写函数的过程中,我们可能根据需要在函数内部声明一些变量。这些变量的寿命非常短,函数在使用它们的时候非常残忍,“狡兔死,走狗烹”,用完就毁灭它们是这些变量的命运。然而在外部本来就存在的变量不会遭此厄运。
示例:
dog = “wangwang ” 
cat = “mimi ” 
def friends(dog,cat): 
    animal = dog + “ ” + cat 
    print animal,”are friends!” 
friends(dog,cat) 
print dog 
print cat 
print animal
    运行一下,可以看到。在函数运行后,在函数外本来就存在的dog, cat依然存在。但是在函数内部产生的变量:animal,虽然在函数运行的时候产生并存在,当函数执行完之后就死亡了。解释器会产生:name ‘animal’ is not definded。这样的错误。
    这样的设定并不意味着残忍,而是一般在函数运行中产生的变量,一般只会在函数内部产生作用。如果让它一直存在下去,会是对资源极大的浪费。如果在函数之外你会多次用到animal这个变量,正确的做法是:把animal = dog + cat从函数中提出来,放在更“广阔”的域中。
17. 列表
为了更好的组织数据,我们让一个电影列表长成这个样子:
技术分享
movies = [“Avata”,”Titannic”,” The Dark Knight Rises”,” Jurassic Park”,” Dances with Wolves”]
year = [2009,1997,2012,1997,1990] 
directors = [“James Cameron”,” James Cameron”,” Christopher Nolan”,” Steven Spielberg”,” Kevin Costner”]
可以看到,pyhon列表的可读性是非常好的。列表在外貌上有以下的特点:
列表的开始和结束要加上中括号 
采用逗号将列表的项与项分开 
使用“=”号操作符将整个列表赋予一个变量 
列表中可以放置任意的数据类型,如果是字符串,需要打上引号(还记得吗?单引号、双引号都可以)

18. 取列表中的值
和数组一样,列表的第一个元素的索引是从0开始的。也就是说第一个元素的序号是0,第二个元素是1,第三个元素是2。但是你可能还不知道的是:它还可以倒着来数,最后一个的序号是-1,倒数第二的序号是-2。
movies = [“Avata”,”Titannic”,” The Dark Knight Rises”,” Jurassic Park”,” Dances with Wolves”]
技术分享
有了序号,我们来看看怎样来访问列表中的元素呢。Python采用中括号”[ ]”标记法来取出元素,中括号里是该元素的序号。
print movies[0]  
print movies[-1] 
示例:对于moives列表,如果我想访问列表中最后一个元素(Dances with Wolves)的第一个元素(D)怎么做呢?
movies = ["Avata", "Titannic", "The Dark Knight Rises", "Jurassic Park", "Dances with Wolves"]
print movies[-1][0]
19.切片
    Python中采用”:”来切片内容,”:”前后是需要切片的元素。
    这里大家需要特别注意的是:切片操作的两端意义并不相同,如果用数学符号来表示,那就是”[ )”的关系。或者简单的说[A :B]表达的是:从A开始(包括A)到B之前(不包括B)的内容。        -------------口诀:左闭合右开启 或 左>= 右<
如:访问第2个和第3个元素,正确的语法应该是:print movies[1:3]
     print movies[:2]     截取第三个元素之前(不包括第3个元素)的所有元素
   print movies[1:]     截取第二个元素之后(包括第2个元素在内)的所有元素
20.什么都可以扔进去
    列表是序列式的数据类型,可以通过下标来访问列表中的某一个元素或者一些元素。它可以保存任何数目,任意对象类型的非常灵活的容器。
示例:
avatar = ["Avatar", 2009, "James Cameron"]
titannic = ["Titannic",1997, "James Cameron"]
theDarkKnightRises = ["The Dark Knight Rises",2012,"Christopher Nolan"] 
jurassicPark  = ["Jurassic Park",1997, "Steven Spielberg"]
dancesWithWolves = ["Dances with Wolves",1990,"Kevin Costner"]
print [avatar,titannic,theDarkKnightRises,jurassicPark,dancesWithWolves]
结果:
终端:[[‘Avatar‘, 2009, ‘James Cameron‘], [‘Titannic‘, 1997, ‘James Cameron‘], [‘The Dark Knight Rises‘, 2012, ‘Christopher Nolan‘], [‘Jurassic Park‘, 1997, ‘Steven Spielberg‘], [‘Dances with Wolves‘, 1990, ‘Kevin Costner‘]]
#####列表操作
1.增append()、extend()、insert()
A.任何数据的容器都离不开四个操作:增、减、改、删。这些操作都是通过Python中自带的内建函数来实现的。在列表加入一个元素,使用到了内建函数append() 
如:
movies = ["Avata", "Titannic", "The Dark Knight Rises", "Jurassic Park", "Dances with Wolves"] 
movies.append("Story") 
print movies
运行结果:
[‘Avata‘, ‘Titannic‘, ‘The Dark Knight Rises‘, ‘Jurassic Park‘, ‘Dances with Wolves‘, ‘Story‘]
B.如果添加的不是一个元素,而是一个元素集合,比如一个列表呢?我们采用extend()内建函数来在一个列表的末尾添加一个元素集合。
如:
movies=["Avata","Titannic","The Dark Knight Rises","Jurassic Park","Dances with Wolves"]
movies.append("jack chen is chenglong")
otherMovies = ["King Kong","King Kong"]
movies.extend(otherMovies)
print movies
结果:
[‘Avata‘, ‘Titannic‘, ‘The Dark Knight Rises‘, ‘Jurassic Park‘, ‘Dances with Wolves‘, ‘jack chen is chenglong‘, ‘King Kong‘, ‘King Kong‘]
C.同样新的列表也是自动被加到了原列表的末尾。当然,我们不仅满足于此,还想把一个元素添加在其他位置,尤其是中间的某个位置怎么办呢?我们使用内建的insert()函数。
技术分享
Insert函数需要两个参数,一个是将要插入元素的位置一个是即将插入元素的内容。新元素插入后,原来位置上以及之后的元素就顺移一个位置。比如我们要在movies列表中插入”Xman”,插入的位置是第二个。
movies = ["Avata", "Titannic", "The Dark Knight Rises", "Jurassic Park", "Dances with Wolves"]
movies.insert(1,"李天霸")
print movies
print movies[1]
print movies[1:]
结果:
[‘Avata‘, ‘李天霸‘, ‘Titannic‘, ‘The Dark Knight Rises‘, ‘Jurassic Park‘, ‘Dances with Wolves‘]
李天霸
[‘李天霸‘, ‘Titannic‘, ‘The Dark Knight Rises‘, ‘Jurassic Park‘, ‘Dances with Wolves‘]
注意:插入元素的位置与序号之间关系,是从0开始的。

2.(del、remove)
删除列表中的元素,我们有两把刀,一把叫”del(delete的缩写)命令”,一把叫”remove函数”
A.使用del命令时候,我们需要传入被删元素的序号。这里我要删除第3个:del movies[2]  或:del movies
B.若想删除一个元素,却不知道它的序号,但是知道它的内容是什么,用remove函数,remove函数需要传入明确的参数内容,而不是序号。它会首先根据内容找到这个元素,然后删掉它。movies.remove(“Jurassic Park”) 
3. 
如果想修改一个列表中元素的值,直接给它再次赋值就可以了。
如:
movies[0] = “hero” 
print movies[0] 
print movies

综合联系:
avatar = ["Avatar", 2009, "James Cameron"]
titannic = ["Titannic",1997, "James Cameron"]
theDarkKnightRises = ["The Dark Knight Rises",2012,"Christopher Nolan"] 
jurassicPark  = ["Jurassic Park",1997, "Steven Spielberg"]
dancesWithWolves = ["Dances with Wolves",1990,"Kevin Costner"]

#生成一个只有电影名称的列表
movies=[]
movies.append(avatar[0])
movies.append(titannic[0])
movies.append(theDarkKnightRises[0])
movies.append(jurassicPark[0])
movies.append(dancesWithWolves[0])
print movies

#删掉"avata"
del movies[0]
print movies

#把"hero"添加在列表的首位。
movies[0]="hero"
print movies
终端:
[‘Avatar‘, ‘Titannic‘, ‘The Dark Knight Rises‘, ‘Jurassic Park‘, ‘Dances with Wolves‘]
[‘Titannic‘, ‘The Dark Knight Rises‘, ‘Jurassic Park‘, ‘Dances with Wolves‘]
[‘hero‘, ‘The Dark Knight Rises‘, ‘Jurassic Park‘, ‘Dances with Wolves‘]
4. 列表操作符
1.再来介绍两个列表的操作符 + 和 *
“+”就是所谓的连接操作符,通过它我们可以将两个或者多个列表和在一起。下面我们就把这两个列表连起来。
"*"被称为重复操作符,它可以将列表的内容复制相应的倍数。
list1 = [1,2,3]
list2 = ["a","b","c"]
list3=list1+list2    ##也可用list1.extend(list2)
print list3

list2=list2*3
print list2,
终端:
[1, 2, 3, ‘a‘, ‘b‘, ‘c‘]
[‘a‘, ‘b‘, ‘c‘, ‘a‘, ‘b‘, ‘c‘, ‘a‘, ‘b‘, ‘c‘]

示例2:
a = “@” 
h = “1” 
h *= 3 
print a,h,a
终端:
@ 111 @
5. 迭代一个列表
在python中采用for循环来迭代列表是大家首先会选择的方法:
技术分享
示例:
movies = ["A","B","C","D"]
for movie in movies: 
    print movie
终端输出:A B C D
注意:大家可以发现:使用for循环的优点之一是你根本不用考虑列表的大小,for循环适用于任意大小的列表,你不需要先计算出来列表的大小,然后从第0个开始迭代。同时它的可读性非常好。

6.列表解析
技术分享
图中显示了for循环的一种更加简洁的表达方式。
示例:
movies = ["Avata", "Titannic", "The Dark Knight Rises", "Jurassic Park", "Dances with Wolves"]  
movie=[movie for movie in movies]
print movie

输出:
[‘Avata‘, ‘Titannic‘, ‘The Dark Knight Rises‘, ‘Jurassic Park‘, ‘Dances with Wolves‘]
备注:列表解析分为两个部分,第一个部分是”movie”,他代表了列表中的每一个元素的抽象;第二个部分是控制描述语句,这里的”for movie in movies”,如此就遍历了items中的所有的元素,这与for循环中的遍历是一样的。
示例2:
for写法:
for movie in movies: 
    for letter in movie[0]: 
        print letter
列表解析写法:print [letter for movie in movies for letter in movie[0]]
输出:[‘A‘, ‘T‘, ‘T‘, ‘J‘, ‘D‘]





python语法基础

标签:

原文地址:http://www.cnblogs.com/georgelei/p/4684668.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!