初学python之路-day04
每天一篇总结,今天学习的是有关于流程控制的知识。
流程控制,顾名思义,在计算机运行中,程序是被某种控制方式按照某种流程或者规律来执行的。而python程序的运行,肯定也是按照某种规律在执行。这些规律可以分为顺序结构、分支结构、循环结构。顺序结构,在宏观上,逻辑上方代码一定比逻辑下方代码先执行,自上而下。分支结构,在今天学习的内容里就是if分支结构,这是需要条件来判断,并选择不同执行路线的执行规律。循环结构,就是指在做某些行为时,我们要给计算机重复执行的指令,即满足了某种条件或不满足某种条件,重复执行的指令,在这里有while循环与for循环。
一、if分支结构:
1.if 条件:
执行代码
eg:if age > 18:
print("年龄大了")
2.if 条件:
执行代码1
else:
执行代码2
eg:if age < 18:
print("年龄还好")
else:
print("年龄大了")
3.if 条件:
执行代码1
elif 条件2:
执行代码2
(else:
执行代码3)
注意:elif可以根据需求出现多次(代码层次方面要考虑条件的先后顺序);所有分支都可以根据需求决定是否有else结构,else结构就是条件(所有条件)不满足才去执行的分支。
4.if嵌套
if 条件:
if 条件:
执行代码1
elif 条件:
执行代码2
...
else:
执行代码n
elif 条件:
...
注意:这任何结构中,当需要条件判断时就可以出现if分支结构。
eg:if grade > 90:
print('优秀')
if input("进入体能测试:") == '通过':
print("进入国家队")
elif grade > 60:
print('通过')
else:
print('开除')
二、while循环
while 条件:
循环体
(else:
执行代码)
注:else语句可以根据情况适时添加,else分支会在while循环正常结束(没有被break结束)时执行。
在while循环里,当条件满足时,就会执行循环体,下次循环开始,再去判断条件,若满足,继续循环,若不满足,结束循环。在使用while循环时,要注意有结束时的不满足的条件,否则循环一直执行,成为死循环。
在循环的过程中,由于某种原因,不想继续执行循环,可以使用break与continue结束循环。break:完全结束一个循环,跳出循环体执行后面条件。continue:终止该循环下的此次循环,进入下次循环。在while循环里可以嵌套while循环,形成循环嵌套。
注意:0,"",[],{},None可以被while及if这种需要条件判断的,转换为False,其他都是True。
eg:c = 0
while c < 10:
c += 1
if c == 5:
break
print(c)
else:
print('执行')
三、for循环
for 循环得到的结果 in 被循环的容器:
循环体
for循环用来完成特定的循环需求。
eg:for i in [1, 2, 3, 4, 5]:
print(i)
以上方循环举例,当第一次循环时,循环得到的结果i就是 被循环的容器[1, 2, 3, 4, 5]中第一个值1;再次循环,i会被重新赋值为列表中第二个值2,以此类推。在for循环中,若当次循环的结果不使用,在下次循环就会被覆盖,无法找回。当列表里的值被i全部赋值一遍后,循环自动结束。for循环中,不考虑死循环,但是有无限的容器。
在此,学习range()函数,可以看出被循环的容器,可以帮助我们创建容器。
range(开始被包含, 结束不被包含, 步长)
eg: for i in range(5): # [0, 1, 2, 3, 4]
print(i)
在range(5)中,默认开始为0,结束为5,步长为1。
range(10,5,-1)可以看作列表 [10, 9, 8, 7, 6]。当步长为负数,可以从大值到小值获取区间。
在for循环中,break与continue也适用于for循环,效果一样。
eg:打印出九九乘法表
for i in range(1,10):
for j in range(1,i+1):
r='%sx%s=%s'%(j,i,i*j)
print(r,end=" ")
print()
结果如下:
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
初学python之路-day04的更多相关文章
- python之路:Day04 --- Python基础4
本节内容 1.字符串格式化 2.迭代器和生成器 3.装饰器 4.Json & pickle 数据序列化 5.软件目录结构规范 一.字符串格式化 百分号式 %[(name)][flags][wi ...
- 初学python之路-day12
本篇补上字符串的比较:按照从左往右比较每一个字符,通过字符对应的ascii进行比较 一.函数默认值的细节 # 如果函数的默认参数的默认值为变量,在所属函数定义阶段一执行就被确定为当时变量存放的值 a ...
- 初学python之路-day10
基础部分先告一段落,今天开始学习函数. 一.函数:完成 特定 功能的代码块,作为一个整体,对其进行特定的命名,该名字就代表函数 -- 现实中:很多问题要通过一些工具进行处理 => ...
- 初学python之路-day08前期总结
# 1# 计算机原理:控制器 运算器 存储器 input设备 output设备 IO流# 三大核心:CPU 内存 硬盘 # 内存分布:栈区 与 堆区# 如二进制与十进制的转换,如1111转成十进制为1 ...
- 初学python之路-day08
#学习了编码后,还要了解三种字符串.# 一.# 普通字符串:u''以字符作为输出单位,# print(u'abc') # 用于显示abc# # 二进制字符串:b'' 二进制字符串以字节作为输出单位# ...
- 初学python之路-day07-字符编码
今天的博客主要关于字符编码,并对前几天学习的数据类型做些总结. 学习字符编码的目的:解决乱码问题. 应用程序打开文本文件的三步骤 1.打开应用程序 2.将数据加载到内存中 3.cpu将内存中的数 ...
- 初学python之路-day03
我在前面的文章提到了变量的概念,这里详细介绍下变量的命名.变量名,只能是字母.数字及下划线 "_" 任意组成,而且不能以数字开头.在命名变量时,尽量避免与系统关键词重名,如:'an ...
- 初学python之路-day02
python,诞生于1989年的圣诞,Guido van Rossum为了打发无聊,因此发明了python,并且开放了其源代码,使得这门语言在随后的几十年的发展的越来越广.现今,2.x版本已经在2.7 ...
- 初学python之路-day01
第一天学习python,先了解到了进制之间的转换关系. 如二进制与十进制的转换,如1111转成十进制为15,1111从左向右可看出2^3+2^2+2^1+2^0为8+4+2+1=15.记住前8位1的二 ...
随机推荐
- ExcelDna项目完整工程演示及讲解
原始链接:http://www.cnblogs.com/Charltsing/p/ExcelDnaDemo.html ExcelDna工程演示讲课内容 1.ExcelDna是啥? 2.ExcelDna ...
- Python可变参数*和**
可变参数 在Python函数中,还可以定义可变参数.顾名思义,可变参数就是传入的参数个数是可变的,可以是1个.2个到任意个,还可以是0个. 我们以数学题为例子,给定一组数字a,b,c……,请计算a2 ...
- MyBatis基础:MyBatis关联查询(4)
1. MyBatis关联查询简介 MyBatis中级联分为3中:association.collection及discriminator. ◊ association:一对一关联 ◊ collecti ...
- [模板] k短路
简介 Dijkstra最短路+A*搜索. 先逆向求所有点到终点的最短路 \(dis[i]\). 定义估价函数 \(f[i] = d[i] + dis[i]\) , 其中 \(d[i]\) 表示当前起点 ...
- python之函数初识
一.函数的初识1.如何定义函数:def 函数名(): 代码... 例如:def my_len(): l = [1, 2, 3, 4] count = 0 for i in l: count += 1 ...
- luogu P2071 座位安排
这个题可以被分为两部分 1.匈牙利算法(板子) 2.邻接表存图(好像这不能称为第二部分) 每一排能坐两个人,那就把一排拆成两个点, 用匈牙利算法求最大匹配 每个人都只想坐两排,说明每个人只会连四条边 ...
- ☆ [HNOI2012] 永无乡 「平衡树启发式合并」
题目类型:平衡树启发式合并 传送门:>Here< 题意:节点可以连边(不能断边),询问任意两个节点的连通性与一个连通块中排名第\(k\)的节点 解题思路 如果不需要询问排名,那么并查集即可 ...
- Django Cookie,Session
Cookie Cookie的由来 HTTP协议是无状态的,每次请求都是独立的,对服务器来说,每次的请求都是全新的,上一次的访问是数 据是无法保留到下一次的 某些场景需要状态数据或者中间数据等相关对下一 ...
- CAN总线为什么要有两个120Ω的终端电阻?
1 CAN总线为什么要有两个120Ω的终端电阻? 2 终端电阻的作用是使阻抗连续,消除反射,那为什么只在物理上最远的两个节点加这个匹配电阻,而不是在所有的节点都加上匹配电阻? 高频信号传输时,信号波 ...
- (二叉树 递归 DFS) leetcode 100. Same Tree
Given two binary trees, write a function to check if they are the same or not. Two binary trees are ...