下载APP
登录
关闭
讲堂
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者
当前播放: 14 | while循环
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看

零基础学Python

共71讲 · 71课时·约540分钟
16024
免费
01 | Python语言的特点
免费
02 | Python的发展历史与版本
免费
03 | Python的安装
免费
04 | Python程序的书写规则
免费
05 | 基础数据类型
免费
06 | 变量的定义和常用操作
07 | 序列的概念
08 | 字符串的定义和使用
09 | 字符串的常用操作
10 | 元组的定义和常用操作
11 | 列表的定义和常用操作
12 | 条件语句
13 | for循环
14 | while循环
15 | for循环语句中的if嵌套
16 | while循环语句中的if嵌套
17 | 字典的定义和常用操作
18 | 列表推导式与字典推导式
19 | 文件的内建函数
20 | 文件的常用操作
21 | 异常的检测和处理
22 | 函数的定义和常用操作
23 | 函数的可变长参数
24 | 函数的变量作用域
25 | 函数的迭代器与生成器
26 | Lambda表达式
27 | Python内建函数
28 | 闭包的定义
29 | 闭包的使用
30 | 装饰器的定义
31 | 装饰器的使用
32 | 自定义上下文管理器
33 | 模块的定义
34 | PEP8编码规范
35 | 类与实例
36 | 如何增加类的属性和方法
37 | 类的继承
38 | 类的使用-自定义with语句
39 | 多线程编程的定义
40 | 经典的生产者和消费者问题
41 | Python标准库的定义
42 | 正则表达式库re
43 | 正则表达式的元字符
44 | 正则表达式分组功能实例
45 | 正则表达式库函数match与s...
46 | 正则表达式库替换函数sub...
47 | 日期与时间函数库
48 | 数学相关库
49 | 使用命令行对文件和文件夹...
50 | 文件与目录操作库
51 | 机器学习的一般流程与NumP...
52 | NumPy的数组与数据类型
53 | NumPy数组和标量的计算
54 | NumPy数组的索引和切片
55 | pandas安装与Series结构
56 | Series的基本操作
57 | Dataframe的基本操作
58 | 层次化索引
59 | Matplotlib的安装与绘图
60 | 机器学习分类的原理
61 | Tensorflow的安装
62 | 根据特征值分类的模型和代...
63 | 网页数据的采集与urllib库
64 | 网页常见的两种请求方式ge...
65 | HTTP头部信息的模拟
66 | requests库的基本使用
67 | 结合正则表达式爬取图片链...
68 | Beautiful Soup的安装和...
69 | 使用爬虫爬取新闻网站
70 | 使用爬虫爬取图片链接并下...
71 | 如何分析源代码并设计合理...
本节摘要

课程源码、课件及课后作业地址:

https://github.com/wilsonyin123/geekbangpython

精选留言(13)

  • 2018-12-15
    老师,批量注释您用了什么快捷键呀

    作者回复: ctrl+/

    5
  • 2019-02-07
    老师您好,有以下2个问题咨询一下。
    问题1、
    下面代码1可以执行,代码2不可执行,而且无任何提示。这个是什么原因呢?
    #两端代码的唯一区别是,代码1中的 print(num) 与 if 开头是对齐的;代码2中的 print(num) 与 if 开头是不对齐的,往后错了大概一个tab。
    问题2、
    python对于代码段落格式对齐方面有什么要求嘛?

    代码1-----可以执行
    import time
    num = 5
    while True:
        num = num +1

        if num == 10:
            continue
        print(num)
        time.sleep(1)

    代码2----无法执行
    import time
    num = 5
    while True:
        num = num +1

        if num == 10:
            continue
            print(num)
        time.sleep(1)
    展开

    作者回复: 您好,我先回答第二个问题,python确定语句块(比如if语句块包含一条语句还是两条语句)是看缩进来判断的,缩进可以是一个或者多个空格或者tab,但是我们习惯上缩进用四个空格。
    那我们回头来看第一个问题,
    (四个空格) if num == 10:
    (八个空格) continue
    (八个空格) print(num)
    这里的print()语句如果前面只有四个空格那么,程序会执行if语句之后,执行print()语句;而第二个代码print()前面有8个空白格,那么print就被包括做if语句块中了,它的前一个语句是continue,表示外面的循环语句遇到这条语句就跳过一次循环,因此你就看不到print函数的输出了,也就是你认为的无法运行,其实是程序在一直执行循环,但是没有输出

    1
  • 2018-09-17
    老师为什么我调用不了休眠1秒钟呢,import time 下有波浪线,提示unused import statement
    import time
    num = 5
    while True:
        num = num + 1
        print(num)
        if num == 10:
            continue
            time.sleep(1)
    展开

    作者回复: continue语句帮你完美的避过了time模块,程序执行到continue会跳出循环,下面的time模块不被执行

    1
  • 2018-06-12
    # 练习一 条件语句的使用
    str1 = input('请输入一个字符串:')

    if len(str1) == 10 :
        print('%s 的长度等于10'% (str1))
    elif len(str1) > 10:
        print("%s 的长度大于10" % (str1))
    else:
        print("%s 的长度小于10" % (str1))

     # 提示用户输入一个1-40之间的数字,使用if语句根据输入数字的大小进行判断

    enter_num = int(input('请输入一个数字:'))
    if enter_num >= 1 and enter_num<=10:
        print("您输入的数字在1~10之间")
    elif enter_num >= 11 and enter_num<=20:
        print("您输入的数字在11~20之间")
    elif enter_num >= 21 and enter_num<=30:
        print("您输入的数字在21~30之间")
    elif enter_num >= 31 and enter_num<=40:
        print("您输入的数字在31~40之间")
    else:print('您输入的数字不在1~40之间')

    # 练习二 循环语句的使用
    #1. 使用for语句输出1-100之间的所有偶数
    print("1-100之间的所有偶数:")
    for num in range(1,100):
         if num % 2 ==0 :
             print(num)
              #break

    #2. 使用while语句输出1-100之间能够被3整除的数字
    print("1-100之间能够被3整除的数字:")
    num2 = 1
    while num2 in range(1,100) :
        num2 = num2 +1
        if num2 % 3 == 0:
            print(num2)
    展开

    作者回复: 正确,稍后我会在github公布练习题答案

    1
  • 2019-12-03
    老师有个问题想请教一下,
    下面这个代码中为什么下面代码中if里面的代码块没有被执行,而且运行过程中一直会报IndexError错误,我尝试用try去continue后就变成了一个死循环
    life_num=[a+1 for a in range(30)] #生成编号序列
    # print(life_num)
    j=1
    while True:
        if len(life_num) == 15:
            print(life_num)
            break
        else:
            for n in range(len(life_num)):
                if j==9:
                        print('%a号下船!'%life_num[n])
                        life_num.remove(life_num[n])
                        j = 2
                else:
                    j+=1
    展开

    作者回复: 您好, 抛出异常之后程序不会向下执行,所以if部分没有被执行到,考虑IndexError 的异常,可以看下是哪里取life_num的下标出了问题,提示一下:注意在错误提示上面找一下问题代码所在的行数

  • 2019-11-10
    习题一:
    # 1.使用if语句判断字符串的长度是否等于10,根据判断结果进行不同的输出:
    a_str = "qwertyuioa"
    if len(a_str) == 10:
        print("等于", a_str)
    elif len(a_str) >= 10:
        print("大于")
    else:
        print("小于")

    # 2.提示用户输入一个1-40之间的数字,使用if语句根据输入数字的大小进行判断,如果输入的数字在 1-10,11-20,21-30,31-40,分别进行不同的输出
    num = int(input("请输入1-40之间的数字:"))
    if 1 <= num <= 40:
        if 1 <= num <= 10:
            print("输入的数在1-10之间")
        elif 11 <= num <= 20:
            print("输入的数在11-20之间")
        elif 21 <= num <= 30:
            print("输入的数在21-30之间")
        else:
            print("输入的数在31-40之间")

    习题二:
    # 1.使用for语句输出1-100之间的所有偶数
    for i in range(1, 100):
        if i % 2 == 0:
            print(i)

    # 2.使用while语句输出1-100之间能够被3整除的数字
    import time
    num = 0
    while True:
        num += 1
        if num % 3 == 0:
            print(num)
        else:
            continue
        time.sleep(1)
    展开
  • 2019-05-14
    思路挺好的但是注释不规范
  • 2019-04-16
    # 使用while语句输出1-100之间能够被3整除的数字
    a = 1
    while True:
       a = a+1
       if a %3 == 0:
        print (a)
       elif a>100:
        break
    展开
  • 2019-04-13

      # 使用for语句输出1-100之间的所有偶数

    for i in range(1,100):
        if i % 2 ==0:
            print(i)

      # 使用while语句输出1-100之间能够被3整除的数字
    j=1
    while j in range (1,100):
        j=j+1
        if j % 3 ==0:
            print(j)
    展开
  • 2019-03-19
    2.使用while语句输出1-100之间能够被3整除的数字
    i=0
    while True:
        i+=3
        if i>=100:
            break
        print(i)
    展开
  • 1-100的整数是否应该是range(1,101) ?

    作者回复: 是的,range(1,101),后面我们还会学一个xrange()函数,他们的返回结果不同,根据需求要选择不同的方式生成1-100的整数

  • 老师,我有尝试跟着你的课程打指令。在import time 之后,我这边还是很快,无法观测到。我只是安装了官方的python和pycharm。我想知道这是不是我没有数据库的原因

    作者回复: 和数据库无关,应该是你的sleep()函数没有在while循环里面被执行到,检查一下缩进情况。

    1
  • 2019-01-23
    老师请问下,有没有while和for搭配使用的时候呢。
    做课后作业发现,下面第1段中,while必须和变量递增配合才能达到第2段的一样效果,第一段不加i+=1 的话,一直输出0,for不起作用的是什么原因呀。
    **************
    1.
    for i in range(10):
        while i % 3 == 0:
            print(i)
            i += 1
    **********************************
    2.
    for i in range(10):
        if i % 3 == 0:
            print(i)
    展开

    作者回复: 您好,我依次回答一下:
    1 有while和for混合使用的情况,在python里,while更“像”是现实生活里面的循环,当满足while的条件会一直持续不断的执行下去,for更多的地方用在对一个容器(字符串、字典、列表等)依次取里面的元素。所以他们在Python编程里是有可能会出现都使用的情况的。
    2 回答一下你的代码的疑问,当你不使用i += 1时,while循环的判断结果一直为True,所以:
    while i % 3 == 0:
        print(i)
    会一直循环下去,代码没有机会运行到while循环的上一层--for循环的语句,我们通常说程序进入到了死循环;而第二段代码if语句判断一次,无论结果如何if语句块都会结束,会进入到for循环的语句块执行,这就是你主要有疑问的地方,并非for"不起作用"。