IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Learn Python with Steem #04 笔记

    Hacper\'s Blog发表于 2018-07-31 20:44:30
    love 0

    Learn Python with Steem #04 笔记


    [toc]

    划重点

    • 循环

    人做重复性的事情很低效和枯燥,相比之下让机器来完成这些事更适合,所以在大鹏的《学R》中说,循环是个救世主。

    循环由循环条件和循环体组成:满足条件,程序就重复做一类事情,要重复做的事情就是循环体,用缩进体现。

    • 循环的类型 循环可分两类:已知重复次数,用 for 循环方便一些,用while循环也可以,for循环还可以对一个容器进行迭代。
      不知道具体循环次数或者需要一个死循环,可以使用while循环,直到发现不满足循环条件,就退出循环。

    • 字符串格式化

      格式化字符串用format()函数,也可以用占位符%。

    编程练习

    1
    2
    3
    4
    5
    6
    
    # 作业 
    
    for row in range(1, 10):
        for col in range(1, row + 1):
            print('{}*{}={}'.format(row, col, row * col), end='\t')
        print()
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    1*1=1   
    2*1=2   2*2=4   
    3*1=3   3*2=6   3*3=9   
    4*1=4   4*2=8   4*3=12  4*4=16  
    5*1=5   5*2=10  5*3=15  5*4=20  5*5=25  
    6*1=6   6*2=12  6*3=18  6*4=24  6*5=30  6*6=36  
    7*1=7   7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=49  
    8*1=8   8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=64  
    9*1=9   9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81  
    
    1
    2
    3
    4
    
    for row in range(1, 10):
        for col in range(1, row + 1):
            print('%d*%d=%d' % (row, col, row * col), end='\t')
        print()
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    1*1=1   
    2*1=2   2*2=4   
    3*1=3   3*2=6   3*3=9   
    4*1=4   4*2=8   4*3=12  4*4=16  
    5*1=5   5*2=10  5*3=15  5*4=20  5*5=25  
    6*1=6   6*2=12  6*3=18  6*4=24  6*5=30  6*6=36  
    7*1=7   7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=49  
    8*1=8   8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=64  
    9*1=9   9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81  
    
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    # 猜数游戏
    import random
    
    answer = random.randint(1, 100)
    counter = 7
    while True:
        if counter > 0:
            print('你还剩%d次机会' % counter)
            number = int(input('请输入答案: '))
            counter -= 1
            if number < answer:
                print('太小了')
            elif number > answer:
                print('太大了')
            else:
                print('恭喜你猜对了!')
                break
        else:
            print('Game Over!')
            break
    
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    你还剩7次机会
    请输入答案: 50
    太小了
    你还剩6次机会
    请输入答案: 80
    太大了
    你还剩5次机会
    请输入答案: 70
    太小了
    你还剩4次机会
    请输入答案: 75
    太小了
    你还剩3次机会
    请输入答案: 78
    太大了
    你还剩2次机会
    请输入答案: 76
    太小了
    你还剩1次机会
    请输入答案: 77
    恭喜你猜对了!
    

    补充

    循环控制

    1
    2
    3
    4
    5
    
    # break 跳出循环,终止循环
    for i in range(5):
        if i == 3:
            break
        print(i)
    
    1
    2
    3
    
    0
    1
    2
    
    1
    2
    3
    4
    5
    
    # continue 放弃本次循环,但不终止循环
    for i in range(5):
        if i == 3:
            continue
        print(i)
    
    1
    2
    3
    4
    
    0
    1
    2
    4
    

    输出重定向

    打印99乘法表的时候查看了print()函数的参数:

    Docstring:
    print(value, …, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)

    Prints the values to a stream, or to sys.stdout by default.

    file=sys.stdout 这个参数没有用过,它默认把输出打印到屏幕(sys.stdout),应该也可以把输出重定向到其他地方,比如文件,
    试试看

    1
    2
    3
    
    f = open('K:\Workspace\python\Python-x-Steem-tutorial-master\Python-x-Steem-tutorial\hello.txt', 'w')
    print('Hello balabala!!', file=f)
    f.close()
    
    1
    
    %pycat hello.txt
    

    结果:
    blob.jpg
    blob.jpg


    ## 我的笔记:

    • Learn Python with Steem #01 笔记
    • Learn Python with Steem #02 笔记
    • Learn Python with Steem #03 笔记


沪ICP备19023445号-2号
友情链接