零基础学 Python(2018 版)
尹会生
前游戏公司技术总监,前新浪网技术经理
80141 人已学习
新⼈⾸单¥68
课程目录
已完结/共 72 讲
第一章 :Python介绍和安装 (3讲)
第二章 :Python基础语法 (3讲)
第四章 :条件与循环 (5讲)
第五章 :映射与字典 (2讲)
第六章 :文件和输入输出 (2讲)
第七章 :错误和异常 (1讲)
第九章 :模块 (1讲)
第十章 :语法规范 (1讲)
第十一章 :面向对象编程 (4讲)
第十二章 :多线程编程 (2讲)
第十六章 :综合案例 & 结课测试 (1讲)
特别放送 (1讲)
零基础学 Python(2018 版)
登录|注册
留言
38
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 16 | while循环语句中的if嵌套
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
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与search的区别
46 | 正则表达式库替换函数sub()的实例
47 | 日期与时间函数库
48 | 数学相关库
49 | 使用命令行对文件和文件夹操作
50 | 文件与目录操作库
51 | 机器学习的一般流程与NumPy安装
52 | NumPy的数组与数据类型
53 | NumPy数组和标量的计算
54 | NumPy数组的索引和切片
55 | pandas安装与Series结构
56 | Series的基本操作
57 | Dataframe的基本操作
58 | 层次化索引
59 | Matplotlib的安装与绘图
60 | 机器学习分类的原理
61 | Tensorflow的安装
62 | 根据特征值分类的模型和代码
63 | 网页数据的采集与urllib库
64 | 网页常见的两种请求方式get和post
65 | HTTP头部信息的模拟
66 | requests库的基本使用
67 | 结合正则表达式爬取图片链接
68 | Beautiful Soup的安装和使用
69 | 使用爬虫爬取新闻网站
70 | 使用爬虫爬取图片链接并下载图片
强势回归:零基础学Python2022版来啦!
71 | 如何分析源代码并设计合理的代码结构&结课测试
本节摘要

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

https://gitee.com/geektime-geekbang/geekbangpython

登录 后留言

全部留言(38)

  • 最新
  • 精选
li
根据while嵌套这节 和老师输入的一样啊 输入3月15怎么返回的是水平座和双鱼座?输入12月25 怎么什么都没返回? zodiac_name=(u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',u'金牛座',u'双子座', u'巨蟹座',u'狮子座',u'处女座',u'天秤座',u'天蝎座',u'射手座') zodiac_days=((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,23),(8,23),(9,23),(10,23),(11,23),(12,23)) int_month=int(input('请用户输入月份')) int_day=int(input('请用户输入日期')) n = 0 while zodiac_days[n] < (int_month,int_day): if int_month == 12 and int_day > 23: break n +=1 print(zodiac_name[n])

作者回复: 认真检查一下最后一行的代码缩进,print()语句在不同的缩进位置,输出结果可是有很大差别的啊,要细心

2018-06-11
4
15
定格一瞬间
import datetime today=datetime.datetime.today() AttributeError: module 'datetime' has no attribute 'today' 老师这个错误啥问题呢

作者回复: 你书写这段代码的文件名,它的文件名可能叫做datetime,导致导入时失败

2018-06-12
2
飞鸟
这个例子中,用while循环时,不论判断条件是: while zodiac_days[n]>还是<(int_month,int_day) 结果都一样,这是不是while语句的优势?

作者回复: 不一样噢,while语句后面的结果成立,即返回值为True时循环会执行的,返回为False时,while语句内的语句块不会执行,需要分析下代码内容和下面的缩进

2018-06-12
2
爱吃鱼的喵
老师您好,我想请问一下,第16节课中,当输入的日期小于1月19,比如1月1号为什么输出的结果依旧正确,n=0呢?

作者回复: 你好啊,出现了意料之外的结果,我们也称作程序出错了,只是这个错误是语法错误、运行时错误之外的程序逻辑错误 对付程序逻辑错误,有两个非常强大的工具,一个叫做print()函数,也就是在出错的结果之前,增加print(),输出中间结果,用来定位哪里出现了问题,再针对该行代码进行优化。 另一个工具叫做“debug”,debug也称作调试,一般在pycharm、vscode等IDE的运行按钮附近。如果程序不长,可以逐行运行,运行后可以在观察界面看到变量的变化和堆栈变化,如果程序比较长,可以在行号前面点击鼠标,会有红色的圆点,称作断点。这时候调试会运行到标记红色圆点的行,你可以从这一行再逐行分析程序的行为。 这是解决程序逻辑错误的最有效的两个办法,你可以分别尝试一下。

2021-10-13
2
1
夏圣龙Je suis été
尹老师,while循环中if的嵌套和for循环if的嵌套都能实现同样的功能,得到同样的结果,在课程讲解中,while循环语言简洁一些,是不是以后处理类似的问题时,只选择while就行了?谢谢

作者回复: 你好,要根据处理的对象来选择while 和for循环,例如我要遍历一个列表 用 for 结构就更简单,也更优雅;while循环更多用于数字的比较,比如 while count < 10 这种

2019-12-26
1
胡俊杰
在Mac系统用Chrome播放器在英国网络条件下播放视频总是会出现卡顿的情况。卡着了之后就一直不动。 我用的网络应该是很快的 下载东西也是几m跑的 不知道什么原因播放极客视频就会经常卡 一个视频卡很多次。

作者回复: 好的,我帮您反馈给技术

2019-01-08
1
joeyqiu
嵌套的列表推导式 列表解析中的第一个表达式可以是任何表达式,包括列表解析。 考虑下面由三个长度为 4 的列表组成的 3x4 矩阵: >>> matrix = [ ... [1, 2, 3, 4], ... [5, 6, 7, 8], ... [9, 10, 11, 12], ... ] 现在,如果你想交换行和列,可以用嵌套的列表推导式: >>> [[row[i] for row in matrix] for i in range(4)] [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]] 尹老师: 这个是中文版说明文件里的样例,我不是很理解,能否帮忙解释下:对两个循环且嵌套不理解,能否从数学角度拆分下,谢谢。

作者回复: 分开执行下面的每一条语句,再回来理解一下 print(matrix[0][0]) print(matrix[1]) print(matrix[1][0]) print(matrix[2][0]) print([row[0] for row in matrix]) for i in range(4): print([row[i] for row in matrix])

2019-01-07
1
周登军
你好,老师!请问这zodiac_days[n],其中的n为什么可以变量出zodiac_days里的所有数值呢?[]不是切片功能吗?还有n赋值的是数字0,在while循环里怎么就能实现for循环里的遍历功能了呢?还望解惑,谢谢🙏🙏

作者回复: 你好,我逐一解答一下 1 zodiac_days[n] 里面的zodiac_days和n都是变量名称,为了描述方便我把它们两个用z 和 n 替代。 其中 z[]的写法并不是切片,而是表示z是一个字典数据类型(你需要再复习一下Python的基本数据类型数字、字符串、列表、字典),它的定义形式是: z = {'a':1 , 'b':2, 'c':3} 当你需要得到某个key对应的值的时候,就可以使用 z['a'] 的写法,会得到'a'对应的值“1” 2 字典z能够支持遍历,也就是得到字典里所有的key和值, 这时候就能使用 for xxx in z: 这样的写法 如果课程中的案例对你来说太复杂,可以先把其中的某些功能单独放拿出来测试,这样会更好理解某个模块的功能,理解后再结合案例学习效果较好

2021-08-30
2
炫丽生活
老师 为什么while zodiac_days[n]<(int_month,int_day)为什么是小于 比如输入1月19日 逻辑上说就不合理了 为什么不是大于等于呢

作者回复: zodiac_days我定义的元组都是星座的开始时间, 因此通过int_month和zodiac_days比较时,如果大于指定月份,再通过int_day和星座的日期起始时间去比对,就得到正确的星座了 为什么不是大于等于呢? 如果使用了大于等于,我需要将事先定义的星座日期改为每个星座的结束月份和日期,可以在循环中用prnit打印进行跟踪

2021-03-03
Geek_8a84b2
和老师输入的一样,可是为什么输入11月2日后没有任何星座返回? m=0 while zodiac_days[m]<(int_month,int_day): m=m+1 print(zodiac_name[m]) 请输入月份:11 请输入日期:2 没有任何报错,但是输入月份和日期之后就没有任何东西显示了,为什么?

作者回复: 你可以在M=M+1,的下面增加print,在打印一下中间结果。问题可能是出在代码缩进上。

2021-01-22
收起评论