人人都能学会的python编程教程4:关系运算符与循环

关系运算符

if 语句

实际应用中的程序,大多不是一撮而就的,而是根据条件不同存在很多分支。

最基本的条件分支结构是if...else...语句即如果。。。否则。。。

在python当中,if condition1:(注意最后的冒号:)称为“语句头”。冒号:之后另起一行缩进的是“语句体”,语句体的行数不限,但至少有一行,否则需要用pass填充(即什么也不做)。

缩进是Python复合语句的关键,初学者经常因缩进不当而导致报错。关于缩进的习惯可以分为两个派别:Tab党,和Space党,即用Tab键或空格键来控制缩进。(我本人常年坚持使用Tab)

if之后必须是一个布尔表达式(如 condition1),当它为 True 时,执行其对应的语句体(branch1),否则向下跳转到后一个语句头(elif)。如果所有的 if 都没有被满足,则执行最后一个 else对应的语句体。

每个if分支所属的程序体都需要缩进,否则会产生语法错误,这与C/C++/Java等使用大括号 {} 的语言不同。

其实我个人认为,使用大括号的代码可读性更高,而且不容易在传播过程中失真。

下面写一个小程序判断一个数是奇数还是偶数

循环

Python只支持两种循环:for 循环和 while 循环。

在语法结构上和 if/else 有些接近,比如语句头需要加冒号(:),语句体需要缩进。

for 循环

在上一课中,我们介绍过对字符串的in和not in运算符:in运算符并非字符串的专利,很多数据类型都具备这样的性质,可以作为“迭代器”。

迭代器

组成 for 循环的一个关键部分就是迭代器。最常用的迭代器其实是列表(list)。字典(dictionary)也可以作为迭代器,迭代对象就是(key)。

这些可以作为迭代器的数据容器,在之后的几节会详细介绍他们的属性,下面先来看一个简单的小例子:

迭代器共有4个元素,分别是4个汉字。for循环迭代了四次,每次取一个字,并执行print()函数。

range()函数

range()函数可以生成特定形式的数值迭代数列,经常配合 for 循环使用。range()读取三个参数,分别对应三种情况:

  • range(a):一个参数,这个参数就是数列的上限(开区间,不包含这个数本身),下限默认为0。
  • range(a, b):两个参数分别指定了上下限。下限(a)是闭区间,也包含在其中;而上限(b)则是开区间,不参与计算。
  • range(a, b, c):三个参数。第三个参数叫步长,前两个例子没有第三个参数,因此都是以默认值 1 为步长。本例中我们人为指定了步长。输出了 10 以内的偶数。值得再次提醒的是,这里的“10以内”不包括10。注意,如果 range(a, b) 的参数 a>b,那么返回的将是一个空数组
  • 如果步长为负数,会返回什么样的结果呢?
  • 看下图

while 循环

while 循环会持续反复执行循环内语句,直到condition == False。

每次执行语句之后,都会重新检查条件是否为真,如果为假则跳出循环。

下面出一个编程小练习:

找出 100 以内三的倍数,放入列表 numbers 中。

numbers = []

# 列表添加元素地方法是:numbers.append()

# >>>> 编程区 <<<<

# >>>> 编程区 <<<<

下篇文章我们公布答案。

本文分享自微信公众号 - JKXQJ(bclsj-cn)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-01-01

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

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互联网杂技

理解javascript闭包前,先理解作用域链

1. 全局作用域(Global Scope)   在代码中任何地方都能访问到的对象拥有全局作用域,一般来说以下几种情形拥有全局作用域:   (1)最外层函数和...

37450
来自专栏老马说编程

(92) 函数式数据处理 (上) / 计算机程序的思维逻辑

上节我们介绍了Lambda表达式和函数式接口,本节探讨它们的应用,函数式数据处理,针对常见的集合数据处理,Java 8引入了一套新的类库,位于包java.uti...

20160
来自专栏北京马哥教育

对Python老司机99%有帮助的简明语法总结乱编

本文由马哥教育Python实战开发班6期学员推荐,转载自互联网,作者为赖笔小新,感谢作者的辛苦付出和贡献。 最近发现进入python群的朋友都在你是如何自学py...

33470
来自专栏Python攻城狮

正则表达式1.正则表达式概述2.re模块操作3.表示字符4.re模块的高级用法5.贪婪和非贪婪

在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块,名字为re

26220
来自专栏余林丰

Java中net.sf.json包关于JSON与对象互转的坑

  在Web开发过程中离不开数据的交互,这就需要规定交互数据的相关格式,以便数据在客户端与服务器之间进行传递。数据的格式通常有2种:1、xml;2、JSON。通...

46350
来自专栏黑泽君的专栏

【Java面试复习经典】传智播客Java就业班入学测试题及答案解析(2012年版)

  共50道题,每道题2分,总分100分,80分为合格。   注意,题目有多选,也有单选。请认真作答。

20530
来自专栏简书专栏

Python入门

多媒体应用、WEB开发、网络爬虫、人工智能与机器学习、数据分析处理、服务器运维及其他小工具 知乎链接:用python做一些有趣的事情

37030
来自专栏求索之路

Effective Java笔记(不含反序列化、并发、注解和枚举)

最近把Effective Java复习了一遍,其中有比较多的java最佳实践可以在平时编程中用到。反序列化、并发、注解和枚举这四章没看,并发这本书里讲的比较简...

381110
来自专栏Pythonista

封装与扩展性

封装在于明确区分内外,使得类实现者可以修改封装内的东西而不影响外部调用者的代码;而外部使用用者只知道一个接口(函数),只要接口(函数)名、参数不变,使用者的代码...

10430
来自专栏老司机的技术博客

宝宝都能学会的python编程教程9:dict和set

dict字典 dict和我们小时候用的字典很像,如果你想查一个汉字,你只需要根据某一个拼音就可以很快速的查询到它。 ? 在字典的索引表里(比如部首表)查这个字...

36450

扫码关注云+社区

领取腾讯云代金券