python之基础篇(六)——表达式、语句和运算符

python的表达式、语句和运算符

  表达式:由一个或多个操作数以及0个或0个以上的运算符组成的序列就叫做表达式。

  语句:语句是以分号(;)结尾的单行代码或者是语句块中一系列的单行语句。

  python中常用的表达式操作符:

    算术运算:

      +、-

      *、/、//、%

    逻辑运算:

      or、and、not

    成员关系运算:

      in、not in

    对象实例测试:

      is、not is

    比较运算:

      <、>、<=、>=、==、!=

    位运算:

      |、&、^、<<、>>

    一元运算:

      -x、+x、~x

    幂运算:

      **

    索引和分片:

      x[i]、x[i:j]、x[I:j:stride]

    调用:

      x(...)

    取属性:

      x.attribute

    定义元组:(...)

    定义列表:[...]

    定义字典:{...}

    三元选择表达式:x if y else z

    匿名函数表达式:lambda args: expression

    生成器函数发送协议表达式:yield x

  运算优先级从高到低排序:

    (...) 、[...]、{...}

    s[i]、s[i:j]:切片、索引

    s.attribute:取属性

    s(...):函数调用

    +x、-x、~x:一元操作符

    **:次方

    *、/、//、%:乘、除、整除、取模

    +、-:加、减

    <<、>>:位移

    &:按位与

    ^:按位异或

    |:按位或

    <、<=、>、>=、==、!=:比较操作符

    is、not is:对象实例测试

    in、not in:成员测试

    not:取反

    and:逻辑与

    or:逻辑或

    lambda:匿名函数

  python中的常用语句有以下这些:

    赋值语句:a = 'abc'。python会在首次给变量赋值时创建变量名并建立对象引用。变量名在引用前必须事先赋值,否则将触发异常。

    调用语句

    打印语句:print

    条件判断语句:if/elif/else

    序列迭代语句:for/else

    普通循环语句:while/else

    占位符:pass

    中断语句:break

    提前进入下一轮循环:continue

    定义函数:def

    返回值语句:return

    生成器函数语句:yield

    命名空间:global

    触发异常:raise

    模块导入:import

    模块属性访问:from

    定义类:class

    捕捉异常:try/except/finally

    删除引用语句:del

    断言语句(调试检查):assert

    环境管理器:with/as

    赋值语句:

      隐式赋值:import、from、def、class、for、函数参数

      分解赋值:当赋值符号(=)的左侧为元组或列表时,python会按照位置把右边的对象和左边的目标自左而右逐一进行配对。个数不同时会触发异常,此时可以以切片的方式进行。

1
2
3
4
5
6
7
8
9
10
11
12
In [ 1 ]: list1  =  ( 'Sun' , 'Mon' , 'Tue' )
 
In [ 2 ]: x,y,z  =  list1
 
In [ 3 ]:  print  x
Sun
 
In [ 4 ]:  print  y
Mon
 
In [ 5 ]:  print  z
Tue

      多重目标赋值:将多个变量名引用同一个对象

1
        num1  =  num2  =  num3  =  44

      增强赋值:+=、-=、*=、/=、//=、%=


python流程控制之if条件测试语句:

  python的比较操作:所有的python对象都支持比较操作

    可用于测试相等性、相对大小等;

    如果是复合对象,python会检查其所有部分,包括自动遍历各级嵌套对象,直到可以得出最终结果

  测试操作符:

    "=="操作符测试值的相等性;

    "is"操作符测试对象的一致性

  python中不同类型的比较方法:

    数字:通过相对大小进行比较

    字符串:按照字典(ASCII)次序逐字符进行比较

    列表和元组:自左至右比较各部分内容

    字典:对排序后的(键、值)列表进行比较

  python中真和假的含义:

    非零数字为真,否则为假;

    非空对象为真,否则为假;

    None则始终为假;

    比较和相等测试会递归地应用于数据结构中,返回值为True或False

  组合条件测试:

    and

    or

    not:返回True或False

    注意:python中,and和or运算会返回真或假的对象,而不是True或False。对象在本质上不是"真",就是"假"。

    and和or是短路操作符

  三元表达式:

1
expression1  if  boolean_expression  else  expression2

  例: a = x if y else z,这一句的意思是如果y条件成立,则a =x,否则a = z


python流程控制之while和for循环:

  循环机制及应用场景:

    while循环:

      用于编写通用迭代结构(非遍历);

      顶端测试为真即会执行循环体,并会重复多次测试直到为假后执行循环后的其它语句

    for循环:

      一个通用的序列迭代器,用于遍历任何有序的序列对象内的元素;

      可用于字符串、元组、列表和其它的内置可迭代对象,以及通过类所创建的新对象

      语法格式:

1
2
3
4
for  expression  in  iterable:
     for_suite
else :
     else_suite

      通常,expression或是一个单独的变量,或是一个变量序列,一般以元组的形式给出。如果以元组或列表用于expression,则其中的每个数据项都会拆分到表达式的项,例如:

1
2
3
4
5
6
7
8
9
In [ 7 ]: T = [( 1 , 2 ),( 3 , 4 ),( 5 , 6 ),( 7 , 8 )]
 
In [ 8 ]:  for  (a,b)  in  T:
    ...:      print  a,b
    ...: 
1  2
3  4
5  6
7  8

      for循环比while循环执行速度快。

      python提供了两个内置函数,用于在for循环中定制特殊的循环:

        range或xrange:

          range:一次性地返回连续的整数列表

          xrange:一次产生一个数据元素,相较于range更节约空间

        zip:返回并行的元素元组的列表,常用于在for循环中遍历数个序列

          取得一个或多个序列为参数,将给定序列中的并排的元素配成元组,返回这些元组的列表。当参数长度不同时,zip会以最短序列的长度为准。

          zip还可用于构造字典

    python也提供了一些能够进行隐性迭代的工具:

     in成员关系测试;

      列表解析;

      map、reduce和filter函数

  break:跳出最内层的循环

  continue:跳到所处的最近层循环的开始处,也就是提前进入下一轮循环,continue后面的语句将不会执行

  else代码块:循环正常终止才会执行else代码块,如果循环终止是由break跳出导致的,则else代码块不会执行

  pass:点位语句。当语法需要语句但还没有任何实用语句可写时使用


while循环练习

  练习1:逐一显示指定列表中的所有元素

  练习2:求100以内所有偶数之和

  练习3:逐一显示指定字典的所有键,并于显示结束后说明总键数

  练习4:创建一个包含了100以内所有奇数的列表

  练习5:逆序逐一显示一个列表的所有元素

  练习6:列表l1=[0,1,2,3,4,5,6],列表l2=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],以第一个列表中的元素为键,以第二个列表中的元素为值生成字典d1

for循环练习

  练习1:逐一分开显示指定字典d1中的所有元素,类似如下

    k1 v1

    k2 v2

    ...

  练习2:逐一显示列表l1=['Sun','Mon','Tue','Wed','Thu','Fri','Sat']中的索引为奇数的元素

  练习3:将属于列表l1=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],但不属于列表l2=['Sun','Mon','Tue','Thu','Sat']的所有元素定义为一个新列表l3

  练习4:已知列表namelist=['stu1','stu2','stu3','stu4','stu5','stu6','stu7'],删除列表removelist=['stu3','stu7','stu9']。请将属于removelist中的每个元素从namelist中移除(属于removelist,但不属于namelist的忽略即可)










本文转自 忘情OK  51CTO博客,原文链接:http://blog.51cto.com/itchentao/1887641,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值