学习笔记-小甲鱼Python3学习第九讲

发布时间:2019-09-25 08:22:44编辑:auto阅读(1636)

    while循环:当条件真时,执行循环体

    while 条件:

        循环体


    for循环:

    for 目标 in 表达式:

        循环体

    举例:

    >>> fruits = ['apple','橘子','banana','哈密瓜','pear']           #水果列表frutis

    >>> for fruit in fruits:

    print(fruit,len(fruit))                    #打印水果和水果名字的字符数量


    apple 5

    橘子 2

    banana 6

    哈密瓜 3

    pear 4


    range()函数,python的内置函数,取一定范围值

    语法: range([start,] stop[,step=1])

    -共三个参数,中括号里面是可选参数

    -step=1表示第三个参数的值默认值是1,步进值

    -作用是生成一个从start参数的值到stop参数的值减1结束的数字序列

    举例:

    >>> for i in range(4):

    print(i)

    0

    1

    2

    3

    不设置start值,默认从0开始打印


    >>> for i in range(2,6):

    print(i)

    2

    3

    4

    5


    >>> for i in range(2,10,3):

    print(i)

    2

    5

    8

    设置步进值为3


    break和continue

    break:终止循环,跳出循环体

    举例:

    birth = '1203'

    answer = input('请输入我的生日:')

    while True:

        if answer == birth:

            break

        answer = input('不对,请再猜一下我的生日:')

    print('厉害了!我的生日你都能猜到!')


    continue:终止本轮循环,并开始下一轮循环

    举例:

    for i in range(10):

        if i%2 != 0:

            print(i)

            continue

        print('aloha',i)

    --------------------------分割线,哈哈哈--------------------

    二、课后作业:

    0. 下面的循环会打印多少次"I Love FishC"?

    for i in range(0,10,2):

            print('i love fishc')

    5次,i从0开始,以每次加2,当i为0,2,4,6,8的时候打印“”中语句


    1.下面的循环会打印多少次"I Love FishC"?

    for i in 5:

            print('i love fishc')

    会报错, in 是“成员资格运算符”,i要在一个序列中寻找值,而不是单个值


    2. 回顾一下 break 和 continue 在循环中起到的作用?

    break:终止当前循环,跳出循环体

    continue:终止本轮循环并开始下一轮循环(这里要注意的是:在开始下一轮循环之前,会先测试循环条件)。


    3.请谈下你对列表的理解?

    列表是python中常用的数据类型,以[]方括号括起来,并用,逗号隔开

    列表中的数据不需要具有相同的类型


    4.请问 range(10) 生成哪些数?

    0,1,2,3,4,5,6,7,8,9    相当于range(0,10)  


    5.目测以下程序会打印什么?

    while True:

        while True:

            break

            print(1)

        print(2)

        break

    print(3)

    会打印

    2

    3


    6.什么情况下我们要使循环永远为真?

    #########抄的不知道########### 用于游戏实现,因为游戏只要运行着,就需要时刻接收用户输入,因此使用永远为真确保游戏“在线”。操作系统也是同样的道理,时刻待命,操作系统永远为真的这个循环叫做消息循环。另外,许多通讯服务器的客户端/服务器系统也是通过这样的原理来工作的。所以永远为“真”虽然是“死循环”,但不一定是坏事,再说了,我们可以随时用 break 来跳出循环!


    7.【学会提高代码的效率】你的觉得以下代码效率方面怎样?有没有办法可以大幅度改进(仍然使用while)?

    i = 0

    string = 'I love python.'

    while i < len(string)):

          print(i)

           i+= 1

    上面的代码,效率低下的原因是“每次循环都要调用len()函数”,改为一次性直接调用如下:

    i = 0

    string = 'I love python'

    length = len(string)

    while i < length:

        print(i)

        i += 1


    ----------------------分割线,哈哈哈-----------------

    三、动动手:

    0.设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内

    print('-------密码验证程序-----------')

    count = 3

    password = '11111'

    while count:

        passwd = input('请输入密码:')

        if passwd == password:

            print('密码正确,进入程序...')

            break

        elif '*' in passwd:

            print('*不能作为密码',end=' ')

            continue

        else:

            print('密码错误,你还有',+ count-1,'次机会.',end=' ')

        count -= 1


    1.编写一个程序,求 100~999 之间的所有水仙花数。如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数。

    for i in range(100,1000):

        if i == ((i//100)**3 + (i%100//10)**3 + (i%10)**3):

            print(i)


    2.三色球问题:

    有红、黄、蓝三种颜色的球,其中红球3个,黄球3个,绿球6个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配。

    print('--------三色球问题--------')

    for red in range(4):

        for yellow in range(4):

            for blue in range(7):

                if red + yellow + blue == 8:

                    print('三色球组合:红球',red,'个','黄球',yellow,'个','篮球',blue,'个')


关键字