python基础内容表达式_Python基础语法

Python编码规范

类名首字母大写,对象名小写。

类的属性与方法名以对象作为前缀。

类的私有变量、私有方法以两个下划线作为前缀。

函数名通常采用小写,并用下划线或者单词首字母大写增强可读性。

Python的注释以 # 开头,后面的文字直到行尾都算注释

Python的编码通过缩进表示每行代码之间的层次关系。如下

x=1

if x == 1:

print"x=",x #代码缩进

else:

print"x=",x #代码缩进

x = x + 1 #代码缩进

print"x=",x

Python中语句可以用;结束语句,也可以省略

#下面两句语句等价

print"hello"

print"hello";

但是在同一行中有多条语句,就必须用分号隔离

#使用分号分隔语句

x = 1 ; y = 1 ; x= 1

对于一些一行代码比较长的语句。

Python支持多行写一条语句,

Python使用\作为多行语句连接符。

以下为两种写法

写法一只用了一对双引号,

写法二用了两对双引号,写法二比写法一的可读性强。

注:\用来链接字符串时,后不能有任何代码,包括注释

print"hello \

world"

print"hello "\

"world"

输出结果都为

hello world

Python有的编辑器是不支持中文字符的,

用到中文需要在最顶部添加

# -*- coding: utf-8 -*-

变量和数据类型

Python会根据变量的值自动判断变量的类型。

有如下类型。

一、整数

Python可以处理任意大小的整数。

二、浮点数

浮点数也就是小数。

三、字符串

字符串是以' '或" "或''' '''(三个单引号)括起来的任意文本

四、布尔值

Python中,可以直接用True、False表示布尔值(注意大小写)

五、空值

空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

运算符与表达式

算术运算符

算数运算符包括四则运算符、求模运算符和求幂运算符。

+:加法运算

-:减法运算

*:乘法运算

/:除法运算

%:求模运算

**:求幂运算

# -*- coding: utf-8 -*-

print"1 + 1 =",1+1 #结果为:1 + 1 = 2

print"2 - 1 =",2-1 #结果为:2 - 1 = 1

print"3 * 2 =",3*1 #结果为:3 * 2 = 3

print"4 / 2 =",4/2 #结果为:4 / 2 = 2

print"1 / 2 =",1/2 #结果为:1 / 2 = 0

print"1 / 2 =",1.0/2.0 #结果为:1 / 2 = 0.5

print"3 % 2 =",3%2 #结果为:3 % 2 = 1

print"2 ** 3 =",2**3 #结果为:2 ** 3 = 8

关系运算符

>:大于

>=:大于等于

<=:小于等于

==:等于

!=:不等于

# -*- coding: utf-8 -*-

print 2 > 1 #结果为:True

print 4 < 2 #结果为:False

print 3 >= 2 #结果为:True

print 2 <= 1 #结果为:False

print 4 == 2 #结果为:False

print 3 != 2 #结果为:True

逻辑运算符

在Python中采用 and ornot表示与、或、非

与运算:只有两个布尔值都为 True 时,计算结果才为 True。

print True and True # ==> True

print True and False # ==> False

print False and True # ==> False

print False and False # ==> False

或运算:只要有一个布尔值为 True,计算结果就是 True。

print True or True # ==> True

print True or False # ==> True

print False or True # ==> True

print False or False # ==> False

非运算:把True变为False,或者把False变为True。

print not True # ==> False

print not False # ==> True

在逻辑运算中,有一条重要法则:短路计算。

1. 在计算 a and b 时,

如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;

如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

2. 在计算 a or b 时,

如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;

如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。

a = 'python'

print a or 'world' #==>python

b = ''

print b or 'world' #==>world

Python集合与元祖

Python内置的一种数据类型是列表:list。

list是一种有序的集合,可以随时添加和删除其中的元素。

下面演示集合的一系列操作

# -*- coding: utf-8 -*-

L=['A','B','C','D','E',1,2,3,4,5] #定义一个list集合

print L #==>['A', 'B', 'C', 'D', 'E', 1, 2, 3, 4, 5]

#list集合索引是从0开始的。

#读取集合时候不要越界,会报错。

print L[0] #==>A

print L[6] #==>2

#倒序读取

print L[-1] #==>5

print L[-6] #==>E

print L[-10] #==>A

L.append(6) #末尾追加一个元素

print L #==>['A', 'B', 'C', 'D', 'E', 1, 2, 3, 4, 5, 6]

L.insert(1,'in') #在索引为1的位置插入元素'in'

print L #==>['A', 'in', 'B', 'C', 'D', 'E', 1, 2, 3, 4, 5, 6]

L.pop() #删除list最后一个元素

print L #==>['A', 'in', 'B', 'C', 'D', 'E', 1, 2, 3, 4, 5]

#删除最后一个元素并打印出这个值

print L.pop() #==>5

print L #==>['A', 'in', 'B', 'C', 'D', 'E', 1, 2, 3, 4]

L.pop(1) #删除索引值为1的元素

print L #==>['A', 'B', 'C', 'D', 'E', 1, 2, 3, 4]

#替换数组中的值

L[1]='TB' #替换索引值为1的值为TB

L[-2]=33 #替换倒数第二个值为33

print L #==>['A', 'TB', 'C', 'D', 'E', 1, 2, 33, 4]

总结上面的测试代码,列表有几个常用的函数。

append(object):在列表的尾部添加一个object

indert(index,object):在指定的索引处插入一个object

pop([index]):删除索引index指定的值,如果index不指定则删除最后一个元素

还有不常用的一些。

remove(value):删除列表中首次出现的value值

extend(iterable):将iterable指定的元素复制到列表的尾部

index(value,[start,[stop]]):返回value出现在列表中的索引值,start、stop可省略

sort(cmp=None,key=None,reverse=False):列表的排序

reverse():列表的反排序

tuple是另一种有序的列表,中文翻译为“ 元组 ”。

tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。

获取 tuple 元素的方式和 list 是一模一样的,

可以正常使用 t[0],t[-1]等索引方式访问元素,

但是不能赋值也不能删除里面元素。

单元素元组需要在元素后面加上,

因为()既可以表示tuple,又可以作为括号表示运算时的优先级,

结果 (1) 被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。

正是因为用()定义单元素的tuple有歧义,

所以 Python 规定,单元素 tuple 要多加一个逗号“,”

T=(1)

print T #==>1

T = (1,)

print T #==>(1,)

元组的访问还有一种特殊方法,

分片(slice)是元组的一个子集,

在与之类似的数组也能使用

分片是从从第一个索引(包含第一个索引所指向的元素)

到第二个索引(不包含第二个索引所指向的元素)所指定的所有元素。

分片的表达式如下:

tuple[m:n]

# -*- coding: utf-8 -*-

T = (0,1,2,3,4,5)

#包含左边索引对应值,不包含右边索引对应值

print T[1:3] #==>(1, 2)

print T[1:-2] #==>(1, 2, 3)

print T[2:] #==>(2, 3, 4, 5)

print T[:3] #==>(0, 1, 2)

print T[:] #==>(0, 1, 2, 3, 4, 5)

print T[:10] #==>(0, 1, 2, 3, 4, 5)

print T[10:] #==>()

数组访问之打包解包

# -*- coding: utf-8 -*-

T = (00,10,20,30,40,50) #打包

a,b,c,d,e,f=T #解包,需要一一对应

print b #==>10

T = [00,10,20,30,40,50] #打包

a,b,c,d,e,f=T #解包,需要一一对应

print b #==>10

Python控制语句

Python中条判断语句:

if语句、if...else...语句、if...elif...else...语句

使用控制语句需要注意Python缩进规则,具有相同缩进的代码被视为代码块,

缩进请严格按照Python的习惯写法:

4个空格,不要使用Tab,因为有的编译器Tab不是四个空格,很容易造成因为缩进引起的语法错误。

通过缩进代码可以互相嵌套。

注意: 语句后接表达式,然后用:表示代码块开始。

# -*- coding: utf-8 -*-

age = 50

if age >= 18:

if age>=60:

print "老年人"

else:

print '成年人'

elif age >= 12:

print '青年'

elif age >= 3:

print '儿童'

else:

print '宝宝'

Python中循环语句:

for循环、while循环。

for 循环可以依次把list或tuple的每个元素迭代出来

while 循环不会迭代 list 或 tuple 的元素,而是根据表达式判断循环是否结束。

# -*- coding: utf-8 -*-

L = [1, 2, 3, 4, 5]

sum = 0

for i in L: #依次取出L中元素放入i中

sum+=i

print sum #==>15

i = 1

sum = 0

while i<=5:

sum=sum+i

i=i+1

print sum #==>15

break 与continue语句

break:退出循环语句

# -*- coding: utf-8 -*-

# -*- coding: utf-8 -*-

L = [1, 2, 3, 4, 5]

sum = 0

for i in L:

sum+=i

if i==3: #当取出元素等于3

break #退出循环体

print sum #==>6

continue:跳过本次循环

# -*- coding: utf-8 -*-

L = [1, 2, 3, 4, 5]

sum = 0

for i in L:

if i%2==0: #当取出元素是偶数

continue #跳过执行下面代码,

sum+=i

print sum #==>9

了解这两个控制语句后,来看看

for...else...、while...else...语句。

只有当循环执行结束才会运行循环后else代码块语句。

循环过程中途退出循环则不会运行循环后else代码块语句。

continue不会影响执行else语句

# -*- coding: utf-8 -*-

L = [1, 2, 3, 4, 5]

sum = 0

for i in L:

if i%2==0: #当取出元素是偶数

continue #跳过执行下面循环体内代码,

sum+=i

else: #循环语句执行完成,进入else

sum=0

print sum #==>0

break直接退出循环,包括else

# -*- coding: utf-8 -*-

L = [1, 2, 3, 4, 5]

sum = 0

for i in L:

sum+=i

if i==3: #当取出元素等于3

break #退出整个循环结构,包括后面的else

else:

sum=0

print sum #==>6

循环也是可以多重嵌套的,

for x in ['A', 'B', 'C']:

for y in ['1', '2', '3']:

print x + y

结果为:

A1

A2

A3

B1

B2

B3

C1

C2

C3

Python中Dict和Set类型

Dict与list 、 tuple 可以用来表示顺序集合,

但是Dict可以自定义索引,

所以Dict也叫字典,他是由一系列的 “键:值”(key:value)对组成.

对之间用逗号隔开。然后通过对应的索引值可以取得元素

注意:索引区分大小写

d = {

'A': 1,

'B': 2,

'C': 3

}

print d['A'] #==>1

由于“键:值”算一个,所以字典d的大小为3

在字典中通过 key 访问 字典 的值,只要 索引 存在,字典就返回对应的值。

如果如果不存在,会直接报错。

所以有以下解决方法。

# -*- coding: utf-8 -*-

d = {

'A': '我是A',

'B': '我是B',

'C': '我是C'

}

#方法一先判断

if 'A' in d: #判断A是否在字典中

print d['A']

#方法二直接读取,如果不存在返回空

print d.get("A") #==>我是A

print d.get("D") #==>None

dict的第一个特点是查找速度快,

无论dict有10个元素还是10万个元素,查找速度都一样。

而list的查找速度随着元素增加而逐渐下降。

不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,

还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。

由于dict是按 key 查找,所以,在一个dict中,key不能重复。

dict的第二个特点就是存储的key-value序对是没有顺序的

这和list不一样。

dict打印的顺序不一定是我们创建时的顺序,

而且,不同的机器打印的顺序都可能不同,这说明dict内部是无序的,不能用dict存储有序的集合。

dict的第三个特点是作为 key 的元素必须不可变

Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。

但是list是可变的,就不能作为 key。

字典的值是可变的,可以通过索引赋值。

# -*- coding: utf-8 -*-

d = {

'A': 'woshiA',

'B': 'woshiB',

'C': 'woshiC'

}

d['A']='tihuan'

print d #==>{'A': 'tihuan', 'C': 'woshiC', 'B': 'woshiB'}

字典遍历

d = {

'A': 111,

'B': 222,

'C': 333

}

for key in d:

print key,d[key]

结果为:

A 111

C 333

B 222

dict的作用是建立一组 key 和一组 value 的映射关系,dict的key是不能重复的。

有的时候,我们只想要 dict 的 key,不关心 key 对应的 value,

目的就是保证这个集合的元素不会重复,这时,set就派上用场了。

set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。

s = set(['A', 'B', 'C'])

print s #==>set(['A', 'C', 'B'])

set不能包含重复的元素,所以,当我们传入包含重复元素的 list ,set会自动去掉重复的元素

s = set(['A', 'B', 'C','C'])

print s #==>set(['A', 'C', 'B'])

由于set存储的是无序集合,所以我们没法通过索引来访问。

我们可以用 in 操作符判断:

s = set(['A', 'B', 'C'])

print 'A' in s #==>True

print 'D' in s #==>False

print 'b' in s #==>False

字典还能添加和删除元素

d = {

'A': 111,

'B': 222,

'C': 333

}

d.setdefault('D',444)

print d #==>{'A': 111, 'C': 333, 'B': 222, 'D': 444}

print d.pop('A') #==>111

print d #==>{'C': 333, 'B': 222, 'D': 444}

由于 set 也是一个集合,所以,遍历 set 和遍历 list 类似,都可以通过 for 循环实现。

s = set(['A', 'B', 'C'])

for key in s:

print key

结果为:

A

C

B

由于set存储的是一组不重复的无序元素,因此,更新set主要做两件事:

一是把新的元素添加到set中,二是把已有元素从set中删除。

注意:如果删除的元素不存在set中,remove()会报错,

所以在删除不确定的元素之前需要先做判断

s = set(['A', 'B', 'C'])

s.add('D')

s.remove('B')

if 'B' in s: #判断'B'对否在s内

s.remove('B')

print s #==>set(['A', 'C', 'D'])

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值