初学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的二 ...
随机推荐
- PS外挂滤镜调出清晰对比照片
最终效果 一.打开原图. 二.我们使用类似第一部分的相同方法,但设置上略有不同,我们将光线放在不同的地方.复制底层,执行滤镜-LUCIS ART水彩滤镜-LUCISART 选择 雕刻 设置参数为25. ...
- python json数据的转换
1 Python数据转json字符串 import json json_str = json.dumps(py_data) 参数解析: json_str = json.dumps(py_data,s ...
- 洛谷 P1088 火星人
https://www.luogu.org/problemnew/show/P1088 这个题一开始是很蒙的 感觉很麻烦,每次都要交换balabala..... 后来才知道有这么一个神奇的stl 真是 ...
- [SimplePlayer] 3. 视频帧同步
Frame Rate 帧率代表的是每一秒所播放的视频图像数目.通常,视频都会有固定的帧率,具体点地说是每一帧的时间间隔都是一样的,这种情况简称为CFR(Constant Frame Rate);另外一 ...
- 七、Java多人博客系统-2.0版本-docker部署
docker是当下很热门的技术,是对之前的部署系统方式的彻底改变.之前部署系统,需要安装数据库.初始化数据库,安装jdk,配置jdk,部署应用程序,修改配置文件等,很繁琐.一般现场运维人员很难搞定,现 ...
- django rest framework serializers序列化
serializers是将复杂的数据结构变成json或者xml这个格式的 serializers有以下几个作用: - 将queryset与model实例等进行序列化,转化成json格式,返回给用户(a ...
- HashMap底层实现原理
HashMap底层实现 HashMap底层数据结构如下图,HashMap由“hash函数+数组+单链表”3个要素构成 通过写一个迷你版的HashMap来深刻理解 MyMap接口,定义一个接口,对外暴露 ...
- 洛谷P3806 点分治
点分治 第一次写点分治..感觉是一个神奇而又暴力的东西orz 点分治大概就是用来处理树上链的信息,把路径分成过点x和不过点x的两种,不过点x的路径可以变成过点x的子树中一点的路径,递归处理 #incl ...
- 「洛谷3292」「BZOJ4568」「SCOI2016」幸运数字【倍增LCA+线性基+合并】
[bzoj数据下载地址]不要谢我 先讲一下窝是怎么错的... \(MLE\)是因为数组开小了.. 看到异或和最大,那么就会想到用线性基. 如果不会线性基的可以参考一下我的学习笔记:「线性基」学习笔记a ...
- 洛谷P1880 石子合并(环形石子合并 区间DP)
题目描述 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法,计算出将N堆石子合并成1 ...