【03】Python:分支和循环
写在前面的话
在写代码的时候,我们的代码不可能总是一行一行语句的堆叠,有些时候我们需要对一个事物进行判断,或者很大一组数据需要循环挨个处理。这些不可能让我们一步一步的去写。所以有了接下来的分支结构和循环结构。
分支结构
语法格式:
if 条件1:
执行1
elif 条件2:
执行2
else:
执行3
示例:
x = 3
y = 2 if x == 1:
print("这是第一种情况")
elif x == 2:
print("这是第二种情况")
else:
if y == 1:
print("这是第三种情况")
else:
print("这是第四种情况")
当然,elif 和 else 语句都不是必须,在面对复杂的需求的时候,我们也能进行嵌套。
实例:
1. 判断成绩等级,90 以上 A,80 - 89 为 B,70 - 79 为 C,60 - 69 为 D,60 以下为 E。
# 输入成绩
score = float(input("请输入成绩:")) # 判断成绩
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
elif score >= 60:
grade = "D"
else:
grade = "E" print("成绩为:%s" % grade)
结果:

三元运算符
三元运算符其实际就是将简单的 if 写成一个语句,如:
x = 3 if x == 1:
y = 1
else:
y = 0
我们可以使用三元运算符表示:
x = 3
y = 1 if x == 1 else 0
当然我们还可以写更复杂的逻辑,但是不推荐,因为我们写代码有个前提,那就是便于阅读,越简单易读越好。
循环结构
在循环结构中,主要有两种,一种是 while,一种是 for in,两种循环如果要说区别,可能更多的是使用场景的区别,
for in,一般对一个类似数组这样的集合进行一个一个迭代循环。
while,一般用于某种特殊的循环,带有判断的意味,我们可以理解为 当 xxx 的时候怎么样。
语法格式:
# for 循环
for i in 可迭代对象:
执行 # while 循环
while 条件:
执行
实例:
1. 输出所有水仙花数:三位数,个位的三次方 + 十位的三次方 + 百位的三次方 = 数字本身
注意:我们这里会用到生成连续数字的内置函数 range。
range(101):生成 0 - 100 的数组。
range(100, 1000) :则会生成 100 - 999 的数组。
range(1, 101, 2):获取 0 - 100 之间的奇数,2 代表跨度。
for num in range(100, 1000):
if ((num // 100) ** 3 + ((num % 100) // 10) ** 3 + (num % 10) ** 3) == num:
print(num)
结果:

2. 求 0 - 100 的偶数和:
sum = 0 for num in range(0, 101, 2):
sum += num
print("0 - 100 的偶数和为:%d" % sum)
结果:

3. 猜数字游戏:用户有 3 次机会,猜 1 - 10 的随机数。猜错会有范围提示。
注意:这里会用到一个内置函数 random,生成随机数。
import random # 用户次数
times = 3
# 生成随机数
random_num = random.randint(1, 10) # 判断
while times:
user_num = int(input("请输入你的猜想:"))
if user_num > random_num:
print("你猜大了")
elif user_num < random_num:
print("你猜小了")
else:
print("你猜对了")
break
times -= 1
print("你还有 %s 次机会!" % times)
结果:

4. 打印 99 乘法表:
for x in range(1, 10):
for y in range(x, 10):
print("%sx%s=%s" % (x, y, x*y), end="\t")
print("")
结果:

这里有个知识点,print 结束默认的符号是换行,我们可以使用 end= 指定结尾的符号。
break 和 continue
这两者都用于循环中,但是两者有着明显的差别:
break,直接结束当前层级的循环,不管你执行到那里。
continue,结束本轮循环,进入下一轮。
看个示例:
for i in (1, 2, 3, 4, 5):
if i == 2:
continue
if i == 4:
break
print(i)
结果如图:

可以明显看到,当 i == 2 的时候,这一轮循环被跳过了,所以没有打印 i 的值,当 i == 4 的时候,整个循环都被结束了,所以后面的都不再打印。
enumerate
枚举,对一个可迭代对象将其组成索引加数据的序列。
示例:
L = ['a', 'b', 'c'] for i in enumerate(L, 1):
print(i)
结果:

小结
本节其实主要是逻辑处理语句,包括判断,循环等。其中包括了两个内置函数:range 和 random。
如果真的只讲几种语法,很简单,结合实例查漏补缺。
【03】Python:分支和循环的更多相关文章
- python分支和循环结构
本文收录在Python从入门到精通系列文章系列 1. 分支结构 1.1 应用场景 迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种代码结构通常称之为顺序结构.然而仅有顺序结构并不能解决 ...
- python 分支语句 循环语句
分支语句 #if-else if a > b: print('aaa') else: print('bbb') #if-elif-else if a > b: print('a>b' ...
- Python 分支、循环、条件与枚举
单行注释:# 注释内容多行注释:''' 注释内容 ''' Python 中有三种控制流语句: if for while 注:Python 中没有 Switch 这种开关语句 if 语句检测条件真, ...
- java 基础 03 运算符 分支结构 循环结构
今天内容: (1)运算符 (2)分支结构 (3)循环结构 1运算符 1.1赋值运算符 (1)简单赋值 = 表示赋值运算符,用于将=右边的数据赋值给=左边的变量来覆盖原来的数值. 笔试题: ia == ...
- Python 分支、循环、条件、枚举
对于表达式,分为“左结合”和“右结合” 左结合:对于没有 = 号的,从左到右边,当然要考虑优先级. 右结合:对于有 = 号存在的情况,右边的自成一体,然后赋值给左边变量 优先级: 逻辑运算符的优先 ...
- 了不起的分支和循环03 - 零基础入门学习Python009
了不起的分支和循环03 让编程改变世界 Change the world by program while循环 说完了分支我们来说说循环,标准的while循环语法我们已经可以熟悉掌握了. 这里我们就简 ...
- python 分支 循环
一 python 知识点 1.变量(标签): a(变量名) = '字符串'or 数字 (整形和浮点型) a相当于变量名的标签 如: a = ...
- python学习笔记(四)之分支和循环
python中比较操作符有: > >= < <= == != 这些操作符返回True或False 1 >>> 1 < 3 2 True 3 >&g ...
- python入门(三):分支、循环、函数
1.分支 if循环格式:if condition_1: statement_block_1elif condition_2: statement_block_2else: statement_bloc ...
- Python学习杂记_4_分支和循环
分支 和 循环 分支和循环这俩结构在各语言中都有着很重要的地位,当然我之前都没有学好,这里总结一下在Python学习中对这俩结构的认识. 分支结构 # 单分支 if 条件判断: 执行语句… # 双分支 ...
随机推荐
- 电信NBIOT 6 - NBIOT实现数据上传及指令接收
电信NBIOT 1 - 数据上行(中国电信开发者平台对接流程) 电信NBIOT 2 - 数据上行(中间件获取电信消息通知) 电信NBIOT 3 - 数据下行 电信NBIOT 4 - NB73模块上行测 ...
- Jmeter进阶技能-数据库信息,传递参数
因为项目的原因,假设我们要实现如下要求:从数据库的用户表里获取用户信息,并作为参数全部传递给登录请求,分别完成登录操作. 01Jmeter连接数据库 1.添加JDBC Connection Confi ...
- Gradle 创建java程序详细步骤
Java构建工具三强: Ant, Maven, GradleAnt历史悠久, 用build.xml 描述, 当时他的xml着实让很多工程师头痛, 但仍有用武之地. Maven 用pom.xml 文件描 ...
- Innodb整体架构
如下图展示了Innodb内存中和磁盘的结构: 内存中结构主要有如下几种: buffer pool change buffer adaptive hash index (自适应的hash索引) Log ...
- python_数据分析_正态分布
Kolmogorov-Smirnov 与 Shapiro-Wilk 模型正态分布检验 Spss stata R语言正态分布 install.packages("nortest") ...
- [TCP/IP] TCP的重发机制是怎么实现的
1)滑动窗口机制,确立收发的边界,能让发送方知道已经发送了多少(已确认).尚未确认的字节数.尚待发送的字节数:让接收方知道(已经确认收到的字节数) 2) 超时重传,tcp每发送一个报文段,就设置一次计 ...
- nodejs简单http日志存储
nodejs实现简单http日志存储 /* 日志存储: 202.189.63.115 - - [31/Aug/2008:15:42:31 +0800] "GET / HTTP/1.1&quo ...
- django中添加新的filter
给模板传递了一个字典,却发现无法在模板中直接通过key获得value. 查阅资料后,这个问题可以通过添加自定义的filter来解决. 首先在app目录下创建一个templatetags目录,并在它的下 ...
- [1018NOIP模拟赛]
题目描述 Description 精灵王国要同侵略 $ Bzeroth $ 大陆的地灾军团作战了. 众所周知,精灵王国有 \(N\) 座美丽的城市,它们以一个环形排列在$ Bzeroth$ 的大陆上. ...
- 9.第一个vue-cli项目
1.什么是vue-cli vue-cli 官方提供的一个脚手架,用于快速生成一个 vue 的项目模板; 预先定义好的目录结构及基础代码,就好比咱们在创建 Maven 项目时可以选择创建一个骨架项目,这 ...