python入门(三)

循环和判断(while、for、if)

一、判断(if-else、if-elif-else)

  在生活中我们不免要进行一些计算来得到我们想要的结果,举个例子:我们摇塞子,判断点数小于等于3为小点,大于3为大点,塞子有6个点,我们用判断来打印

  import random  #导入python的随机库

  x = random.randint()

  if x <= 3:

    print('塞子点数为%s,是小点'%x)

  else:

    print('塞子点数为{},是大点'.format(x))

二、循环(for、while)  

  打印10句“我爱python”,我们需要写10次print('我爱python'),如果次数更多了呢?是不是就不好实现了,虽然他的时间复杂度比较低,为O(1)。那么我们需要通过for或者while关键字来实现

  for i in range(10):

    print('我爱python')

  i = 0

  while i<10:

    print('我爱python')

    i += 1

   复杂循环的实现,比如我们用*组建一个金字塔

          *

                             *          *

                   *          *          *

                 *           *            *         *

  我们先考虑最简单的打印情况,

  n = 4

  for i in range(1,n+1):  #range()函数循环不包含尾部,所以加1,i能够循环到n

    print((i)*'*') 

  结果会发现

  *

  *    *

  *    *    *

  *    *    *    *

  我们想办法把*忘邮编移动 print(((n-i)*' ')+((i+1)*'*')),会发现

       *

                 *    *

            *    *    *

  *    *    *    *

  发现这样实现不了,我们还要进行第二层循环,这是我们需要在每一次的*后面加一个‘ ’,那么我们就要对i+1进行循环,实现代码为

  n = 4

  for i in range(n):

    str = ((n-i)*' ' )  # 定义一个变量接收每次初始化的值,因为每次开始的位置都比要空n-i个空格

    for j in range(i+1):

      str += '* '   #在每次加入*后都要加一个空格

    print(str)

  这样就实现了

 

  那么这样的话,我们在做一个九九乘法表,我们先考虑一下:

  # 1*1=1  
  # 1*2=2 2*2=4
  # 1*3=3 2*3=6 3*3=9

  #  .......

  我们需要两个变量i和j来实现乘法,第一行j只运行了1次,第二行只运行了2次,也就是他是在i以下进行循环的,所以第二层应该是range(i),我们每层运行完才进行换行,我们发现i*j不符合规律

  for i in range(1,10):

    str = ''

    for j in range(1,i+1):

      str += ('%s*%s=%s   '%(i,j,i*j))

      # str += ('%s*%s=%s   '%(j,i,i*j))

    print(str)

  通过运行发现行列不符合规律,他们正好是相反的取值,我们应该用注释掉的代码来实现

posted @ 2019-11-15 19:14  风清扬香四溢  阅读(112)  评论(0)    收藏  举报