Python中的基本结构

Python中的基本结构

Python中基本分为三种结构——顺序结构,分支(选择)结构,循环结构。

  • 顺序结构

    在Python中,我们编写代码是从上向下进行编写的,同样的,程序也是按照这样的顺序执行的。因此,任何算法中,任何程序中都应该是包含顺序结构的。在这里值得拓展的是,我们将编程语言分成解释执行编译执行两大类。例如Python就是解释执行。在编写程序时,有时候会有一些bug,对于解释执行的编程语言来说,在bug之前的所有代码都会正常执行,直到遇到bug,程序就会停止。对于编译执行的编程语言来说,这个代码是无法进行执行的,它必须调整好所有的错误信息,然后才能进行执行。这是简单的理解方式。复杂的说,解释型编程语言直接解析代码,并进行执行。而编译型编程语言需要先对代码进行编译,将其转换成机器语言之后才能进行执行。

  • 分支(选择)结构
    在现实生活中,很多事情只能二选一或者多选一。对于任何一种选择,我们都没办法后悔经历另外一种。在编程中,我们可以使用分支语句来实现。

    • if语句

      if 条件:
          要做的事
          
      x = int(input())
      if x>10:
          print("输入的数字大于10")
      

      if语句中,条件常常是关系运算符组成的关系式,或者逻辑运算符组成的逻辑表达式。当“条件”满足时,才会执行“要做的事”。例如下面的例子,input表示输入,输入的内容转换为整数之后,存放在变量x中,当x的值大于10时,输出“输入的数字大于10”这句话。需要注意的是,“条件”后面的冒号:不要缺少!!

    • if...else语句

      if 条件:
          要做的事1
      else:
          要做的事2
          
          
      x=float(input())
      if x>10:
          x-=11
          x*=3.2
      else:
          x+=3
          x*=5
      print(x)
      

      if...else语句提供了二选一的情况。如果满足“条件”,则执行“要做的事1”,否则,执行“要做的事2”。往往“要做的事1”和“要做的事2”不相同。
      不论是if语句还是if...else语句还是后面介绍的其他语句,在Python中,缩进是非常重要的格式。同等级的缩进代表同级的执行内容。如在if...else语句中,当输入的浮点数x满足x>10条件时,程序需要做两件事——1.将x的值减少11。2.将x变成乘以3.2之后的结果。同样的道理,当x>10的条件不满足时,程序也需要执行两件事——1.将x的值增加3。2.将x变成乘以5之后的结果。
      但需要同样需要注意的是,**print(x)**的缩进与if相同,这也就说明不论x是否满足x>10条件,print(x)都会执行。
      同样需要注意的是,“条件”和else后面的冒号:不能少

    • if...elif...else语句

      if 条件1:
          要做的事1
      elif 条件2:
          要做的事2:
      else:
          要做的事3
          
      x=int(input())
      if x>10:
          print("大于10")
      elif x>5:
          print("小于等于10,但大于5")
      else:
          print("小于等于5")
          
      x=int(input())
      if x>10:
          print("大于10")
      elif x>5:
          print("小于等于10, 但大于5")
          
          
      x=int(input())
      if x>10:
          print("大于10")
      elif x > 5:
          print("小于等于10,但大于5")
      elif x > 3:
          print("小于等于5,但大于3")
      else:
          print("小于等于3")
          
          
      x=int(input())
      if x > 10:
          print("大于10")
      elif 5<x<10:
          print("x的值属于5~10之间")
      elif x==10:
          print("x的值等于10")
      

      在代码中,我们可以了解到,if...elif...else能够提供多选一的选项。不同的形式体现在代码中了,需要额外提到的是,最后的else不是必须的,中间的elif数量没有限制,可以是0个或者无数个。
      同样非常重要的,不论是else还是“条件”,后面的冒号:均不能少

    • 分支语句的嵌套
      分支语句之间可以存在嵌套关系。

      x=int(input())
      if x > 10:
          if x > 5:
              x += 5
              print(x)
          else:
              x -= 5
              print(x)
      else:
          print("x小于等于10的情况")
      

      该代码展示了分支语句嵌套的情况。当x>10成立时,程序需要再次进行“二选一”——x>5或者x<=5的情况。当x>5成立时,程序会将x的值增加5,并进行输出。否则,将x的值减少5,并进行输出。若x>10不成立,那么就只需要将“x小于等于10的情况”这句话输出即可。

  • 循环结构

    • for语句
      for语句常用来遍历(从前往后依次访问每一个元素)列表,序列,字符串,字典等内容。通过遍历达到重复执行某段代码的目的。最常见的是range()产生的序列。

      • range(n)
        产生一个序列,包含从0~n-1的每一个整数。例如,range(6)会产生0,1,2,3,4,5序列。
      • range(a,b)
        产生一个序列,包含从a~b的每一个整数。例如,range(1,6)会产生1,2,3,4,5序列。需要保证a<b,否则不会产生序列。
      • range(a,b,step)
        产生一个序列,包含从a~b中的一些数字,这些数字从a开始,每次增加stepstep可以是正数,负数)。例如range(1,6,2)会产生1,3,5序列。range(6,1,-2)会产生6,4,2序列。***需要保证,a能够通过step不断向b靠近,否则将不会产生序列。***如range(1,6,-2)不会产生序列。

      总之,range()可以产生一个序列,该序列是左包含右不包含,并且range()只能用于整数,并不能用于小数。
      for语句与range()常常一起使用,用来遍历某一范围内的数。

      for i in range(6):
          print(i)
      # 程序会依次访问range产生序列中的元素,并且执行下面的print()代码,从而达到重复执行print的目的。 
      ''' 输出的结果
      0
      1
      2
      3
      4
      5
      '''
      
      x=["1", 2, 3]
      for i in x:
          print(i)
      # 程序会依次输出列表x中的元素
      '''
      "1"
      2
      3
      '''
      
      t="1223"
      for i in t:
          print(i)
      # 程序会遍历字符串t中的所有字符,并使用print进行输出
      ''' 输出的结果
      "1"
      "2"
      "2"
      "3"
      '''
      
      p="1234"
      for i in range(len(p)):
          print(p[i])
      # 程序通过len(p)计算字符串p的长度,并通过range产生0~len(p)-1的编号序列
      # 并通过print将字符串P中对应编号的字符输出出来。
      ''' 输出的结果
      "1"
      "2"
      "3"
      "4"
      '''
      
      
    • while语句
      while语句与if语句有点相似,但不同的是含义,while语句表示循环,当“条件”满足时,程序将会一直执行“要做的事”这段代码,直到“条件”不满足。

      while 条件:
          要做的事
          
          
      s=0
      while s<6:
          s+=1
          print(s)
      # 当s<6时,程序会一直执行s+=1,print(s) 这两句代码,直到s<6不满足。
      ''' 输出的结果
      1
      2
      3
      4
      5
      '''    
      
      a=input()
      cnt=0
      while a!="0":
          cnt=cnt+1
          a=input()
      print(cnt)
      # 当输入的内容不是"0"时,程序会不断增加cnt的值,并且会继续提示输入。但当a的值等于"0"时,程序将会停止,并会输出cnt的值。
      
      s=0
      while True:
          s+=1
      print(s)
      

      最后一段while语句的代码比较特殊,它“条件”位置填写的是True,说明该“条件”一直满足,那么程序将会一直将s的值增加1,并且不会停止下来。因此,while语句外面的print(s)永远都不会执行,因此该程序没有输出。

    • 循环语句的嵌套
      循环语句跟分支语句类似,都可以存在嵌套的情况。循环语句不仅可以嵌套分支语句,还可以嵌套循环语句。不过,循环语句嵌套循环语句的情况有些复杂,这里将不进行介绍。

      n=int(input())
      cnt=0
      while n > 1:
          cnt=cnt+1
          if n%2==0:
              n//=2
          else:
              n=n*3+1
      print(cnt)    
      

      该程序进行了while语句与分支语句的嵌套。对于输入的整数n来说,当它是偶数(n%2==0)时,需要将其除以2(n//=2),当它是奇数时,需要将其乘以3并且加1n=n*3+1)。

      s=0
      for i in range(1,101):
          if i%2==0:
              s-=i
          else:
              s+=i
      print(s)
      ''' 输出的结果
      -50
      '''
      

      程序在遍历range产生的1~100的每一个数字,并对i的值进行判断,如果是偶数,则使用s减去,否则加上。程序达到的目的是:偶数相加,奇数相减。该代码表达的意思也就是:+1-2+3-4...+99-100

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值