今日学习内容详解

流程控制理论

流程控制:控制程序的执行流程

程序执行流程分类:

  1. 顺序结构(之前写的都是顺序结构):从上往下依次执行

  1. 分支结构(if 判断):根据某些条件的判断做出不同的执行流程

  1. 循环结构(while + for):根据某些条件的判断循环反复的做相同的事情(让一些代码反反复复的执行)

    (不可能一直循环下去,应该有一个循环结束的条件)

重点小知识*

'''
1. 在python中使用缩进来表示代码的从属关系
2. 是否执行由条件语句判断决定
(if else elif while for)
3. 也将 缩进的代码 称之为 某某某的子代码
4. 如果多行代码属于同一个父代码 那么这多行代码需要保证相同的缩进(在python中推荐使用四个空格来表示缩进)
(按TAB键 一键搞定)
5. 具有相同缩进量的代码彼此之间按照顺序结构执行,没有从属关系
6. 如果一行代码的结尾是冒号结束 那么紧挨着的下一行必缩进
(冒号的含义相当于是要拥有子代码)
'''

分支结构(if 语法)

单 if 分支

'''
语法结构:
if 条件:
print('条件成立之后执行的子代码(可以有多行)')
'''
eg:
money = 100
if money < 1000:
print('他不是大富翁') # 属于if判断 是否执行由if判断决定

'''
并不是所有的代码都可以有子代码(从属的代码)
目前可以有的是:
if
else
elif
'''

if 与 else 分支

'''
语法结构: if 条件:
条件成立之后执行的子代码(可以有多行)
else:
条件不成立之后执行的子代码 '''
eg:
age = 5
if age > 6:
print('上小学了吔!')
else:
print('还没上小学哦~')

if 与 elif 与 else 分支

'''
语法结构: if 条件1:
条件1成立之后执行的子代码(可以有多行)
elif条件2:
条件2成立之后执行的子代码(可以有多行)
elif条件3:
条件3成立之后执行的子代码(可以有多行)
else:
上诉条件都不成立之后执行的子代码(可以有多行) (中间的elif可以有多行)
'''
eg:
# 1. 先获取学生的成绩
score = input('score>>:')
score = int(score)
# 2. 罗列对应条件
if score >= 90:
print('优秀')
elif score >= 80:
print('良好')
elif score >= 70:
print('一般')
elif score >= 60:
print('及格')
else:
print('挂科')

if嵌套

'''
语法结构: if 条件1:
if条件2:
条件2成立之后执行的子代码(可以有多行)
else:
条件2不成立之后执行的子代码(可以有多行)
else:
条件1不成立之后执行的子代码(可以有多行) '''
eg:
age = 22
is_success = True
if age < 38:
print('我观察你很久了,想了想还是鼓起勇气和你要个联系方式')
if is_success:
print('约吃饭,看电影')
else:
print('去你妹的')
else:
print('哎呀不好意思 认错人了')

练习

  1. 登陆功能:
username=input('请输入用户名字:')
password=input('请输入密码:')
if username == 'qiao' and password == '123':
print('qiao 很高兴遇到你')
else:
print('用户名或密码错误')
  1. 根据用户输入内容打印其权限
'''
egon --> 超级管理员
tom --> 普通管理员
jack,rain --> 业务主管
其他 --> 普通用户
'''
name=input('请输入用户名字:') if name == 'egon':
print('超级管理员')
elif name == 'tom':
print('普通管理员')
elif name == 'jack' or name == 'rain':
print('业务主管')
else:
print('普通用户')

循环结构

循环结构就是重复执行某段代码。

人总在某些时候需要做重复的事,为了能让计算机具备这中能力,程序中就必须要有相应的循环机制。

while 循环

'''
语法结构: while 条件:
条件成立之后执行的循环体代码
'''
# 1.先判断条件是否成立 如果成立则执行循环体代码
# 2.循环体代码执行完毕后 再次判断条件是否成立 如果成立则继续执行循环体代码 如果不成立则跳出循环 eg1: while True:
# 1. 获取用户名密码
username = input('username>>>:')
password = input('password>>>:')
# 2. 效验/判断用户名和密码是否正确
if username == 'qiao' and password == '123':
print('登录成功')
else:
print('登录失败,用户名或密码错误')

eg2:

while + break

如上述eg2,用户输入正确的用户名密码以后无法结束循环,那该如何结束掉这个循环呢?我们可以用break

# break只能结束所在的那一层循环
# 如果while循环嵌套了很多层,要想退出每一层循环,则需要在每一层循环都有一个break

while +continue

break代表结束本层循环,而continue则用于结束本次循环,直接进入下一次循环

#利用while 循环打印数字1-10 不打印4
count = 1
while count < 11:
if count == 4:
count += 1
continue # 结束本次循环,开始下一次循环
'''即本次循环continue之后的代码都不运行了,直接跳到条件判断的地方重新执行'''
print(count)
count += 1

注*

介绍一个写代码会用到的好方法:

  1. 在接口或方法的入口打上调试端点,如下所示。

2. 通过“debug as”运行代码,进入debug代码调试模式。

3. 进入debug模式后,我们就可以通过按F7(有的人是F6)进行步进调试了(或鼠标点击从左往右的第一个垂直向下的小箭头)

4. 这样一步步查看,那找到出现问题的某个位置,就会比漫无目的看要轻松啦

练习

'''
1.编写一个猜年龄的游戏
初级版
如果不对的情况下可以猜三次 如果对了直接结束 升级版
三次机会用完之后提示用户是否继续猜测 如果用户输入了y
则再给用户三次机会 如果用户输入n则直接结束
'''
# 我的 初级版 答案:
# 猜年龄游戏
num = 1
while num < 4:
# 1. 获取年龄
age = input('age>>>:')
# age = int(age)
# 2. 效验/判断年龄是否正确
if age == '19':
print('猜对啦')
break # 结束本10层循环
else:
print('猜错啦')
num += 1
print('游戏结束')
# 我的 升级版 答案:
# 猜年龄游戏
num = 1
while num < 4:
# 1. 获取年龄
age = input('age>>>:')
# 2. 效验/判断年龄是否正确
if age == '19':
print('对了哎!')
break # 结束本层循环
else:
print('不对哦~')
num += 1
if num == 4:
answer = input('再来一次嘛(Y/N):')
if answer == 'Y':
num = 1
else:
print('游戏结束,下次再来呀')

今天就先学到这吧~

下一次我们接着聊 while 的其他循环以及 for 循环呀

python学习-Day5的更多相关文章

  1. Python学习day5作业

    目录 Python学习day5作业 ATM和购物商城 1. 程序说明 2. 基本流程图 3. 程序测试帐号 4. 程序结构: 5. 程序测试 title: Python学习day5作业 tags: p ...

  2. Python学习-day5 常用模块

    day5主要是各种常用模块的学习 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 conf ...

  3. python 学习day5(模块)

    一.模块介绍 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能 ...

  4. python学习Day5 几种数据类型的使用

    今日内容 数据类型分类: int | complex | float | str | bool | list | dict | tuple | set 3种数据类型的方法:(数字.字符串.列表 ) 可 ...

  5. python学习day5 常量 运算符补充 流程控制基础

    1.常量 值不会改变的量 python中没有特别的语法定义常量,一般约定用全大写字母命名常量,比如圆周率pi 2.预算符补充 2.1算数运算符 print(10/3)除法运算 print(10//3) ...

  6. python学习 day5 (3月6日)

    字典映射,{}键值对,key 唯一的 ,可哈希,容器型数据类型 可变的(不可哈希): 字典 列表 集合 都不可做键 不可变的(可哈希): 数字 字符串 bool 元组 frozeset() 可以做键 ...

  7. python学习day5 数据类型Ⅲ(字典)

    day5 字典 回顾&补充 面试题 #数据类型判断a = 1 #intb = (1) #intc = ('1') #strd = (1,) #tuple int py2/py3 除法 强制转换 ...

  8. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  9. Python学习笔记,day5

    Python学习笔记,day5 一.time & datetime模块 import本质为将要导入的模块,先解释一遍 #_*_coding:utf-8_*_ __author__ = 'Ale ...

随机推荐

  1. BUU findkey

    定位关键函数 跟入flag找到问题位置 两行一样的代码,nop掉第二行,按p生成函数 代码审计 int __userpurge sub_4018C4@<eax>(int a1@<eb ...

  2. error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数。。。使用

    一,问题描述 MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引 ...

  3. Java中会存在内存泄漏吗,请简单描述?

    为了搞清楚Java程序是否有内存泄露存在,我们首先了解一下什么是内存泄露:程序运行过程中会不断地分配内存空间:那些不再使用的内存空间应该即时回收它们,从而保证系统可以再次使用这些内存.如果存在无用的内 ...

  4. MySQL 数据库作发布系统的存储,一天五万条以上的增量, 预计运维三年,怎么优化?

    1.设计良好的数据库结构,允许部分数据冗余,尽量避免 join 查询,提高效率. 2.选择合适的表字段数据类型和存储引擎,适当的添加索引. 3.MySQL 库主从读写分离. 4.找规律分表,减少单表中 ...

  5. 使用 RabbitMQ 有什么好处?

    (1)服务间高度解耦 (2)异步通信性能高 (3)流量削峰

  6. 详细描述一下 Elasticsearch 更新和删除文档的过程?

    1.删除和更新也都是写操作,但是 Elasticsearch 中的文档是不可变的,因此不 能被删除或者改动以展示其变更: 2.磁盘上的每个段都有一个相应的.del 文件.当删除请求发送后,文档并没有真 ...

  7. Linux 中进程有哪几种状态?在 ps 显示出来的信息中, 分别用什么符号表示的?

    1.不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的.不可中断, 指进程不响应异步信号. 第 441 页 共 485 页2.暂停状态/跟踪状态:向进程发送一个 SIGSTOP 信号,它就会因响 ...

  8. CEPH-3:cephfs功能详解

    ceph集群cephfs使用详解 一个完整的ceph集群,可以提供块存储.文件系统和对象存储. 本节主要介绍文件系统cephfs功能如何灵活的使用,集群背景: [cephadmin@yq01-aip- ...

  9. 判断1~n有多少个1

    判断1~n有多少个1 例如:1~12中 1 2 3 4 5 6 7 8 9 10 11 12 有1,10,11,12中含有1,则共有5个1: 算法如下: #include<stdio.h> ...

  10. 纯CSS实现柱形图

    CSS在处理排版之强大,没有做不到,只有想不到.下面我们将一同实现一个柱状图. 先打好一个具体的框架.我们利用无序列表做整体,里面的东西我们根本选择内联无素span,strong,em来填充. < ...