python实战课程--控制结构

学编程,最重要的不是多看多听,而是多敲,第一遍看着代码敲.第二遍不看代码敲,第三遍不看代码在限定的时间内敲完.

敲不出来怎么办? 返回上一个步骤,直到能完成下一个步骤.

控制结构

我们本节进入到 Python 3 程序的控制结构,包括两部分:选择控制和循环控制。

选择控制

非常多的编程语言都会使用 if 关键字作为流程控制,除此之外,Python 3 的流程控制还包括 elif 和 else 两个关键字,这两个在选择控制中都是可选的。elif 的意思是 else if,增加进一步的判断是否选择该路径。

举例说明,下面的代码:

>>> a = int(input("Please enter: "))

Please enter: 10

>>> if a > 10:

... print('a> 10')

... elif a == 10:

... print('a ==10')

... else:

... print('a< 10')

input("Please enter: ") 这句代码是使用 input 函数获取用户输入,input 中的参数字符串将输出到屏幕上,用户输入的内容会被函数返回,返回的值为字符串。如果不输入,程序将始终阻塞等待。

int(input("Please enter: ")) 将用户的输入的字符串转成整数,并把数字赋值给变量 a。

这个例子中会根据输入的 a 的值不同选择不同的路径,可以将代码写入一个脚本文件中重复执行尝试不同的输入。

这里需要注意写 Python 语言的缩进,Python 的缩进非常严格,不像 C 语言那样使用 { 进行代码块的管理,Python 采用的方法是缩进,同样缩进的代码属于一个代码块,比如 if 或 else 下方的代码块必须保持严格的相同缩进。

缩进的时候一定不要混用空格和TAB,强烈建议只使用空格,为了保持良好的代码风格,建议使用四个空格作为缩进。

程序执行的截图:

循环控制

Python 中包含两种循环方式,一种是 for,一种是 while。

for 循环主要用在依次取出一个列表中的项目,对列表进行遍历处理。下一节中我们将详细讲解列表的数据结构,这里可以简单理解为一组值。

代码示例如下:

strlist = ['hello','shiyanlou','.com']

for s in strlist:

print(s)

如果需要迭代一组数字列表,并且数字列表满足一定的规律,可以使用内置函数 range():

for a in range(10):

print(a)

range() 函数还有很多不同的使用方法,感兴趣可以查看 help 帮助文档。

另外一种循环是 while,while 不同于 for是使用一个表达式作为判断的条件,如果条件不能够达成则停止循环。

w = 100

while w > 10:

print(w)

w -= 10

这里要注意 w -= 10,等同于 w = w - 10。当 w 的值小于等于 10 的时候,循环退出。

我们在循环控制中,可以使用 break 和 continue 两个关键字,break 表示停止当前循环,continue 表示跳过后当前循环轮次中后续的代码,去执行下一循环轮次。

代码示例:

for a in range(10):

if a == 5:

break

print(a)

执行如下图,当 a 为 5 的时候循环退出:

w = 100

while w > 10:

w -= 10

if w == 50:

continue

print(w)

执行如下图,当 w 为 50 的时候不执行后续的print 代码:

原文发布于微信公众号 - 大数据架构师专家(xinsz08)

原文发表时间:2017-10-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏calvin

centos7 lldb 调试netcore应用的内存泄漏和死循环示例(dump文件调试)

lldb工具的安装,linux下netcore如何生成dump文件,查看下文 centos7使用lldb调试netcore应用转储dump文件

2593
来自专栏AI科技评论

开发 | Python高级技巧:用一行代码减少一半内存占用

我想与大家分享一些我和我的团队在一个项目中经历的一些问题。在这个项目中,我们必须要存储和处理一个相当大的动态列表。测试人员在测试过程中,抱怨内存不足。下面介绍一...

1224
来自专栏前端下午茶

JS 状态模式

状态模式(State)允许一个对象在其内部状态改变的时候改变它的行为,对象看起来似乎修改了它的类。 其实就是用一个对象或者数组记录一组状态,每个状态对应一个实现...

3224
来自专栏Java帮帮-微信公众号-技术文章全总结

Java高级开发工程师,面试总结

Java高级开发工程师,面试总结 每个人都会有的抉择 时隔两年,再一次的面临离职找工作,这一次换工作有些许的不舍,也有些许的无奈。个人所在的技术团队不错,两年时...

3885
来自专栏Java学习网

Java中文乱码问题分析与标本兼治的方法

你是否遇到过这种情景,代码都写OK了,测试也没问题,但一运行发现显示的是乱码,这下坏了,明天还要给客户做演示汇报,现在已经到晚上22点了,别无选择,只能连夜查找...

2798
来自专栏C语言及其他语言

【编程经验】C语言中EOF是什么意思

C语言中EOF的意思 今天跟大家说道说道这个C语言中EOF是什么意思。 相信很多朋友在学习C语言过程中,都看到过EOF的字样,但翻过整本C语...

4067
来自专栏大数据文摘

为什么Python这么慢?

Python语言近年来人气爆棚。它广泛应用于网络开发运营,数据科学,网络开发,以及网络安全问题中。

1134
来自专栏hbbliyong

设计模式学习--面向对象的5条设计原则之接口隔离原则--ISP

一、ISP简介(ISP--Interface Segregation Principle): 使用多个专门的接口比使用单一的总接口要好。 一个类对另外一个类的依...

3618
来自专栏腾讯大讲堂的专栏

设计模式笔记

| 导语 “计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决” “Any problem in computer science can be so...

5008
来自专栏光变

Java Code Review 指南

Java代码俯身指南,主要为Java开发人员提供代码复审参考,快捷有效提出修改意见。

1305

扫码关注云+社区

领取腾讯云代金券