Python2.x语法介绍
,# Python2.x语法
1.字符串
2.数字计算
3.列表
4.逻辑判断
5.流程控制语句
6.函数
python中所有的一切都是对象,且拷贝默认为浅拷贝,引用为直接引用。涉及变量对象赋值,会指向同一个地址
1.字符串
1.1 python2.x中字符串中有中文,要在字符串前加字符 u
#encoding=utf-8 #文件第一行要添加这个utf-8编码格式
print u"某羊"
str="某羊"
print str.decode("utf-8").encode("gbk")
#运行结果:某羊
1.2 普通字符串用双引号 “” 或单引号 ‘’ 括起来,效果是相同的
print “ABCDEFG”
print 'ABCDEFG'
#运行结果:
#ABCDEFG
#ABCDEFG
1.3 反斜杠 \ 是转义字符,它可以将普通字符变成特殊字符,也可以将特殊字符变成普通字符,如果你不希望它是转义字符,那你也可以通过添加前置r来实现
#将普通字符t转义成制表符
print "ABC\tABC"
#运行结果:ABC ABC
#将特殊字符‘转义成普通字符
print 'ABC\'ABC'
#运行结果:ABC'ABC
#使所有\变成普通字符
print r"\t\t"
#运行结果:\t\t
print ur"\t某羊"
#运行结果:\t某羊
1.4 多行字符串
print '''123
456
789
101
'''
#运行结果:123
#456
#789
#101
#在行尾加反斜杠 \ 可以去除回车换行符号,如:
print '''123\
456\
789
101
'''
#运行结果:123456789
#101
1.5 字符串拼接和重复(*)
print "Python"+"3.x"
print "Python""3.x"
print ("Python"
"3.x")
#上面语句的输出结果都是:Python3.x
#字符串重复语法如下
print 3*"A""B"
#运行结果:ABABAB
print 3*"A"+"B"
print "A"*3+"B"
#运行结果:AAAB
print (3*"A"
"B")
#运行结果:ABABAB
注:对于变量值/表达式的字符串,只能用+号进行拼接。
1.6 字符串索引(下标访问)
str="ABCDEFG"
print str[0] # A
print str[1] # B
print str[-1] # G
注:由于0和-0是一样的,所以负数索引从-1开始
1.7字符串切片
切片的语法的左闭右开的。
str="Python"
print str[0:2] # [0,2)即运行结果为:Py
print str[2:5] # [2,5)即运行结果为:tho
print str[:2]+str[2:] # [0,2)+[2,n)即运行结果为:Python
print str[-2:] #[-2,n-1)即运行结果为:on
print str[42:] #运行结果为空,越界索引会被自动处理
注:切片省略开始索引时默认为0,省略结束索引时默认为到字符串的结束。
1.8 返回字符串长度
str = 'Python'
print len(str)
#运行结果:6
2.数字计算
2.1 普通加减乘除取余(+ - * / %)
print 3+3.0 # 6.0
print 3-3.0 # 0.0
print 6/4 # 1
print 6.0/4 # 1.5
print 6.0%4.1 # 1.9
print 6**2 # 6^2,即36
注:python2默认除法是整除,而python3默认除法是精确至除尽。
3.列表
3.1 列表的语法
Python支持多种不同的数据类型放到同一列表中。
list=[1,"123",1.5>1.6]
print list
#运行结果:[1, '123', False]
3.2 列表的索引,切片和拼接
list=[1,"123",4,5,6]
#索引
print list[0] # 1
print list[-1] # 6
#切片,也是左闭右开的
print list[0:2] # [1,'123']
#拼接,支持+号拼接
print list[:1]+list[1:2] # [1,'123']
3.3 列表的修改
字符串的数据类型是immutable ,它不允许修改; 列表是一个 mutable 类型,它自己的内容可以改变。
list=[1,2,3,4,5,6]
list[0]=7
print list
#运行结果:[7,2,3,4,5,6]
使用append()添加新元素
list=[1,2,3,4,5,6]
list.append(7)
print list
#运行结果:[1,2,3,4,5,6,7]
使用切片修改列表
list=[1,2,3,4,5,6]
list[0:3]=[]
print list
list[0:1]=[1,2,3,4]
print list
list[:]=[]
print list
#运行结果:
#[4, 5, 6]
#[1, 2, 3, 4, 5, 6]
#[]
3.4 获取列表的长度
list=[1,2,3,4,5,6]
print len(list)
#运行结果:6
3.5 嵌套列表
a = ['a', 'b', 'c']
n = [1, 2, 3]
x = [a, n]
print x
#运行结果:[['a', 'b', 'c'], [1, 2, 3]]
print x[0]
#运行结果:['a', 'b', 'c']
print x[0][1]
#运行结果:'b'
3.6 列表的常用函数
list.append(x) #在列表的末尾添加一个元素,等同于a[len(a):] = [x]
list.extend(iterable)#使用可迭代对象中的所有元素来扩展列表,等同于 a[len(a):] = iterable
list.insert(i, x)#在索引为i的位置插入元素x
list.remove(x)#移除列表中第一个值为 x 的元素
list.pop(i)#删除列表中给定位置的元素并返回它
list.pop() #删除并返回列表中的最后一个元素。
list.clear()#移除列表中的所有元素。等价于 del a[:]
list.index(x,start,end)#返回列表中第一个值为 x 的索引。可选参数 start 和 end 是切片符号
list.count(x) #返回元素 x 在列表中出现的次数。
list.sort(key=None, reverse=False)#对列表中的元素进行排序
list.reverse()#翻转列表中的元素
list.copy()#返回列表的一个浅拷贝,等价于 a[:]
3.7 列表推导式
如果我们要创建一个列表[0,2,4,6,8,10],那我们可能要执行如下语句:
list=[]
for i in range(6)
list.append(i*2)
但其实我们可以用更加简洁的语句来完成这个工作
#1
list=[2*i for i in range(6)]
#2
list = list(map(lambda i: i*2, range(6)))
将多个for组合成元组元素
list=[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
#list=[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
在这里插入代码片
4.元组
4.1 元组的语法
元组的成员元素可以被索引,但不能被修改。创建一个元组的语法如下:
#1 用一堆括号括起来
t=(1,2,3,4,5)
#2
t=1,2,3,4,5,
5.集合
5.1 集合的语法
Python集合相当于Java中的< Set >,存放不重复的无序单一元素。创建一个集合的语法如下:
#1
set={"a","x",1,2,5}
#2
set=set('abracadabra')
#set={'a', 'r', 'b', 'c', 'd'}
注:空集合只能用set()来创建,而不能用{}(因为{}表示的是空字典)。集合也支持推导式形式。
5.2 集合的运算
集合支持:减(-)、或(|)、与(&)、异或(^)。
a={'a','b','c','d'}
b={1,2,3,4,'a'}
print a-b #set(['b','c','d'])
print a|b #set(['a','b','c','d',1,2,3,4])
print a&b #set(['a'])
print a^b #set(['b','c','d',1,2,3,4])
6.字典
6.1 字典的语法
Python字典相当于Java中的Map,存储的是键值对。创建字典的语法如下:
key和value都支持任意数据类型的数据。
dis = {'a': 1, 'b': 2,3:'c'}
6.2 字典成员元素的增删查改
#增,改
dis["e"]=8
#删
del dis['a']
#查
'a' in dis #查询是否存在
for k, v in dis.items(): #遍历字典
print(k, v)
6.3 字典的常用函数
1.items(),去除关键字和对应值
for k, v in dis.items(): #遍历字典
print(k, v)
7.逻辑判断
7.1 逻辑判断符号
python中的逻辑判断符号跟C语言是一样的。
> #大于
< #小于
== #等于
>= #大于等于
<= #小于等于
!= #不等于
8.流程控制语句
8.1 if
python的if语句中elseif有点像C语言中switch…case…的存在。
x=0
if x<0 :
print("x小于0")
elseif x==0:
print("x等于0")
elseif x==1:
print("x等于1")
else:
print("x大于1")
8.2 for
Python中的for语句跟其他与语言有很大的不同,它主要用于序列的迭代。
list=[1,2,3,4,5,6]
#遍历整个list
for i in list:
print i
‘’‘
运行结果:
1
2
3
4
5
6
’‘’
#只遍历[2,5)那部分
for i in list[2:5]:
print i
'''
运行结果:
3
4
5
'''
8.3 range()函数
range()函数会根据参数生成一个数字列表。
#一个参数(n),代表取值范围[0,n)
range(10) # [0,1,2,3,4,5,6,7,8,9]
range(-5) # []
#两个参数(x,y),代表取值范围[x,y)
range(5,10) # [5,6,7,8,9]
#三个参数(a,b,c),代表从[a,b)中找出所有x,x满足条件 x%c==0
8.4 break
用于跳出循环,这个跟C是一样的,简单演示一下。
list=[1,2,3,4,5,6]
for i in range(len(list)):
if i>0:
break
print list[i]
#运行结果:1
8.5 continue
借鉴于C语言,用于跳过后面的语句,直接进入下一次循环。
list=[1,2,3,4,5,6]
for i in range(len(list)):
if i==1:
continue
print list[i]
‘’‘
运行结果:
1
3
4
5
6
’‘’
8.6 pass
pass语句是在语法上需要一个语句,但不需要做什么的时候用的,比如:
if True:
pass
while True:
pass
class MyEmptyClass:
pass
def initlog(*args):
pass
9.函数
9.1 函数定义
python定义函数的语法如下:
def 函数名(参数列表):
函数体
return 返回值 #不能没有return
注:函数在定义时也可以给参数赋初始值,但不能将没初始值的参数放在有初始值的参数后面(会报错)。
9.2 函数调用
#定义一个函数
def fib(a,b,c=1):
return
#全部传参调用
fib(1,2,3)
#不传参有默认值的参数
fib(1,2)
fib(b=2,a=1)
10.类
以下摘自官方文档:
Python 的类提供了面向对象编程的所有标准特性:类继承机制允许多个基类,派生类可以覆盖它基类的任何方法,一个方法可以调用基类中相同名称的的方法。对象可以包含任意数量和类型的数据。和模块一样,类也拥有 Python 天然的动态特性:它们在运行时创建,可以在创建后修改。
10.1 类的定义
class 类名:
pass
10.1 构造函数
在Python中类的构造函数是定义一个名为 __ init__(init的左右两边都两道下划线,总共4道)的函数,函数的第一个参数为self。构造函数不需要return
class User:
def __init__(self,其它参数):
pass
10.2 成员变量
Python的成员变量不需要实现定义好,在需要用到的时候直接使用语法: self.变量名 定义并初始化即可(在Python中不允许出现未初始化的变量)。
class User:
def __init__(self,a,b):
self.name=a
self.age=b
10.2 成员函数
Python中成员函数(也包括构造函数),它们的第一个参数一定是self,指向对象本身,这个参数在函数调用赋值的时候会被忽略,只传参给后面的参数。普通成员函数是需要return的。
class User:
......
def setName(self,name):
self.name=name
return
10.3 对象的创建和操作
假设有一个类是下面这样子的:
class User:
def __init__(self,name,age):
self.name=name
self.age=age
def setName(self,name):
self.name=name
return
利用这个类,我们可以创建如下对象:
user1=User("MouYang",20) #name="MouYang" age=20
调用成员变量
print user1.name # MouYang
print user1.age # 19
调用成员函数(在Python中,隶属于对象的函数称为方法)
#方法1:直接调用
user1.setName("Mouyang")
#方法二:创建方法对象
userName=user1.setName #创建
userName("Mouyang") #调用
本文地址:https://blog.csdn.net/Mou_Yang/article/details/107071389