博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

   我们在上一节中,我们发现当我们用字符串进行一些功能处理的时候,我们都是把整个字符串写下来的,比如"jasonhy".startwith("j"),如果我们在程序中,很多地方用到"jasonhy"的时候,每个都这样写的话,代码看起来就很low了,而且你有时候还有可能写错,再有一个就是,如果现在需求改变了,不再是"jasonhy"里,变成了"Jasonhy",那这个时候你是不是得每个地方都要改呢?这个工作量就可想而知。为了方便我们代码的可读性,可维护性,我们引入了变量和运算符。

   变量,只能由字,数字以及下划线组成,而且不能用数字开头,不能使用Python里面的关键字,最好也不要和Python里的内置函数重复。

   运算符,包括:

     算术运算符

     比较运算符

     赋值运算符

     逻辑运算符

     位运算符

     成员运算符

     身份运算符

   我们先来看算术运算符,简单说就是我们熟悉的加减乘除:+ - × /,除了这些,Python里边还有取模运算(%),幂运算(××),取商运算(//),这里只示范后面三个:

   取模(%):也就是余数

  print(10%3)
     输出结果是:
        1

   幂运算(××):也就是我们说的次方

  print(2**3)
     输出结果是:
        8

   取商(//):

  print(10 // 3)
     输出结果是:
        3

   比较运算符,就是我们常见的大于(或大于等于)(>/>=),小于(或小于等于)(</<=),不等于(!=),等于(==),返回结果是True和False,示范一个 == :

  print(10 == 3)
     输出结果是:
        False

   赋值运算符,简单的赋值运算符就是 = ,还有就是:加法赋值(+=),减法赋值(-=),乘法赋值(×=),除法赋值(/=),取模赋值(%=),幂赋值(××=),取商赋值(//=),=的话,就直接将右边的值赋给左边的变量,比如var = 18,将18赋给了var,结果如下:

  var = 18
  print(var)
     输出结果是;
        18

其他赋值运算符,先进行左边的运算,再=运算,比如 var = 18,var += 1(先进行18 + 1算术运算,再进行=运算),结果如下:

  var = 18;
  var += 1
   print(var)
     输出结果是:
        19

  逻辑运算符,与运算(and),或运算(or),非运算(not),判断的结果也是True和False,and运算的时候,所有的是True才返回True,or运算只要有一个True就会返回True,not运算取反。示例如下:

  va = 18
  vb = 19
  print(va == 18 and vb == 19)
     输出结果是:
        True
 
print(va == 1 and vb == 19)
     输出结果是:
        False
 va = 18
 vb = 19
 print(va == 18 or vb == 19)
     输出结果是:
        True
 
print(va == 1 or vb == 19)
     输出结果是:
        True
 
print(va == 1 or vb == 1)
     输出结果是:
        False

   位运算符,就是把数字按照二进制来进行运算的:

    位与(&):两个相应位都是1,结果是1,否则是0

    位或(|):两个相应位只要有一个是1,结果就是1,否则是0

    位异(^):两个相应位只要不相同结果就是1,否则是0

    位取反(-):就是对每个为进行取反,1变成0,0变成1

    左移动(<<):各二进制位向左移动若干位,移动之后,高位丢弃,低位补0

    右移动(>>):各二进制位向右移动若干位

  成员运算符,就是用来测试一系列成员是否包含在内,比如字符串,列表(后面将),元组(后面讲):

    in:如果在指定的序列中找到就返回True

    not in:反着取

    案例:

  vstr = "jasonhy"
  print("j" in vstr)
  print("J" in vstr)
     输出结果是:
       ①True
       ②False

 

   身份运算符,比较两个对象是否相同:

    is:判断两个标识符是不是引用同一个对象,是的话,返回True

    is not:反着取

    案例

  vstrA = "jasonhy"
  vstrB = "jasonhy"
  print(vstrA is vstrB)
  vstrB = "Jasonhy"
  print(vstrA is vstrB)
     输出结果是:
         ①True
         ②False

    if语句,格式如下:

     第一种:

      if 条件:

        代码块

      else:

        代码块

    第二种:

      if 条件:

        代码块

      elif 条件:

        代码块

      else:

        代码块

   案例:

  nameA = "jasonhy"
  nameB = "jasonhy"
  if (nameA is nameB):
      print("名字一样,同一个人")
  else:
      print("名字不一样,不是同一个人")
  nameA = "jasonhy"
  nameB = "Jasonhy"
  nameC = "jasonhy"
  if (nameA is nameB):
      print("nameB和nameA是同一个人")
  elif (nameA is nameC):
      print("nameC和nameA是同一个人")
  else:
      print("他们看着都像是一样的,但是名字不一样,不是同一个人")

 

   while循环语句:

    格式:

    while 条件:

      代码块

   案例:

  time = 5
  while time > 0:
      print("开始倒计时==>%d"%time)
      time -= 1
  print("欢迎您来到jasonhy的Python博客")

   for循环语句:

    格式:

    for 子元素 in 序列:

      代码块

   案例:

  name = "ABC123Jasonhy"
  count = 1
  for vn in name:
      if("2" == vn):
          print("你终于猜对了,是2")
          break
      else:
          print("你已经猜了%d次"%count)
      count += 1
  print("游戏结束")

 

   注:在循环语句中,break表示停止循环,continue表示跳过本次循环,执行下次循环