声明:该博客参考深度之眼的视频课程,如有侵权请联系小编删除博文,谢谢! 若总结有所失误,还请见谅,并欢迎及时指出。

程序控制结构

1.1 条件测试

1.1.1 比较运算

a = 10
b = 8
print(a > b)    # True
print(a < b)    # False
print(a >= b)   # True
print(a <= b)   # False
print(a == b)   # False
print(a != b)   # True#非空
Is = []    #数据结构不为空,即变量不为0,None,False 则条件成立
if Is:print("非空")
else:print("空的")

1.1.2 逻辑运算

#与 或 非
a = 10
b = 8
c = 12
print((a > b) and (b > c))  #False
print((a > b) or (b > c))   #True
print(not(a > b))           #False#复合逻辑运算的优先级  非>与>或
print(True or True and False)   #True
print((True or True) and False)  #False

1.1.3 存在运算

#元素 in 列表|字符串
cars = ["BYD", "BWM", "AUDI", "TOYOTA"]
print("BWM" in cars)   #True
print("BENZ" in cars)  #False#元素 not in 列表|字符串
print("BWM" not in cars)   #False
print("BENZ" not in cars)  #True

1.2 分支结构-- if语句

# 1.单分支
age = 9
if age > 7:print("该上学了")#二分支
if age > 7:print("该上学了")
else:print("接着玩泥巴")#多分支
if age < 7:print("搁家玩泥巴")
elif age < 13:print("上小学")
elif age < 16:print("上中学")
elif age < 19:print("上高中")
elif age < 23:print("上大学")
else:print("工作")#嵌套语句
age = eval(input("请输入年龄:"))
if age > 18:is_public_place = bool(eval(input("公共场合请输入1,非公共场合请输入0")))print(is_public_place)if not is_public_place:print("可以吸烟")else:print("不能吸烟")
else:print("禁止吸烟")

1.3 遍历循环-- for循环

#主要形式:for 元素 in 可迭代对象: 执行语句
#执行过程:从可迭代对象中,依次取出每一个元素,并进行相应的操作
#1.直接迭代——列表[]、元祖()、集合{}、字符串""
graduates = ("李雷", "韩梅梅", "Jim")
for graduate in graduates:print("Congraulations, "+ graduate)
'''
Congraulations, 李雷
Congraulations, 韩梅梅
Congraulations, Jim
'''# 变换迭代——字典
students = {201901: '小明', 201902: '小红', 201903: '小强'}
for k, v in students.items():print(k, v)
for student in students.keys():   #valuesprint(student)'''
201901 小明
201902 小红
201903 小强
201901
201902
201903
'''    # range()对象
res = []
for i in range(10000):    #取1到9999的数res.append(i**2)      #平方   用append加到列表的后面
print(res[:5])            #列表前5个元素  [0, 1, 4, 9, 16]
print(res[-1])            #列表最后一个元素  99980001res = []
for i in range(1,10,2):   #1到9,间隔为2的数res.append(i**2)
print(res)    #[1, 9, 25, 49, 81]# 循环控制: break和continue
#break结束整个循环
product_scores = [89, 90, 70, 67, 78, 98, 8, 77, 66, 29] #1组10个产品的性能打分
# 如果低于75分超过一个,则该组产品不合格
i = 0
for score in product_scores:if score < 75:i += 1if i == 2:print("抽检产品不合格")break
#contiune 结束本次循环
product_scores = [89, 90, 70, 67, 78, 98, 81, 77, 66, 29] #1组10个产品的性能打分
# 如果低于75分,则警示
print(len(product_scores))
for i in range(len(product_scores)):if product_scores[i] >= 75:continueprint("第{0}个产品,分数为{1},不合格".format(i,product_scores[i]))
'''
10
第2个产品,分数为70,不合格
第3个产品,分数为67,不合格
第8个产品,分数为66,不合格
第9个产品,分数为29,不合格
'''#for与else的配合
#如果for循环全部执行完毕,没有被break中止,则运行else块
product_scores = [89, 90, 70, 67, 78, 98, 81, 77, 66, 29] #1组10个产品的性能打分
# 如果低于75分超过一个,则该组产品不合格
i = 0
for score in product_scores:if score < 75:i += 1if i == 2:print("产品抽检不合格")break
else:print("产品抽检合格")

1.4 无限循环-- while循环

#为什么要用while循环
#经典题目:猜数字
albert_age = 18
guess = int(input(">>:"))
while guess != albert_age:if guess > albert_age:print("猜大了")elif guess < albert_age:print("猜小了")guess = int(input(">>:"))
print("猜对了")   #while与风向标
albert_age = 18
flag = True
while flag:guess = int(input(">>:"))if guess > albert_age:print("猜大了")elif guess < albert_age:print("猜小了")else:print("猜对了")flag = False        flag = True
while flag:passwhile flag:passwhile flag:flag = False  #逐层判断,当flag为false时,循环会逐层退出#while与循环控制break、continue
albert_age = 18
while True:guess = int(input(">>:"))if guess > albert_age:print("猜大了")elif guess < albert_age:print("猜小了")else:print("猜对了")break            #当满足要求,就跳出循环#输出10以内的奇数
i = 0
while i < 10:i += 1if i % 2 == 0:continueprint(i)#while与else
#如果while虚幻全部执行完毕,没有被break中止,则运行else块
count = 0
while count <= 5:count += 1print("Loop",count)
else:print("循环正常执行完了")
'''
Loop 1
Loop 2
Loop 3
Loop 4
Loop 5
Loop 6
循环正常执行完了
'''# 删除列表中的特定值
pets = ["dog", "cat", "dog", "pig", "goldfish", "rabbit", "cat"]
while "cat" in pets:pets.remove("cat")
pets#将未读书籍列表中书名分别输出后,存入已读书籍列表
not_read = ["红楼梦", "水浒传", "三国演义", "西游记"]
have_read = []
while not_read:book = not_read.pop()have_read.append(book)print("我已经读过《{}》了".format(book))
print(not_read)
print(have_read)
'''
我已经读过《西游记》了
我已经读过《三国演义》了
我已经读过《水浒传》了
我已经读过《红楼梦》了
[]
['西游记', '三国演义', '水浒传', '红楼梦']
'''

1.5 控制语句注意问题

#尽量减少多层嵌套    可读性差,容易把人搞疯
if 条件:执行语句if 条件:执行语句if ...#避免死循环
#while True:
#    print("天地之浩渺,时间之无限")#避免死循环
#while True:
#    print("天地之浩渺,时间之无限")#如果条件判断表达式过于复杂  出现太多的not、and、or等  导致可读性大打折扣 可考虑将条件封装为函数
a, b, c, d, e = 10, 8, 6, 2, 0
if (a > b) and (c > d) and (not e):print("我已经晕鸟")
numbers = (10, 8, 6, 2, 0)
def jude(num):a, b, c, d, e = numx = a > by = c > dz = not ereturn x and y and z
if jude(numbers):print("就是这个feel,biu倍儿爽")

Python基础+数据科学入门(四)程序控制结构相关推荐

  1. 【深度之眼Python基础+数据科学入门训练营】第四章 组合数据类型

    第四章 组合数据类型 4.1 列表 4.1.1 列表的表达 序列类型:内部元素有位置关系,能通过位置序号访问其中元素 列表是一个可以使用多种类型元素,支持元素的增.删.查.改操作的序列类型 ls = ...

  2. 【深度之眼Python基础+数据科学入门训练营】第八章 文件、异常和模块

    第八章 文件.异常和模块 实际应用中,我们绝大多数的数据都是通过文件的交互完成的 8.1 文件的读写 8.1.1 文件的打开 文件的打开通用格式 with open("文件路径", ...

  3. Python基础+数据科学入门(七)

    声明:该博客参考深度之眼的视频课程,如有侵权请联系小编删除博文,谢谢! 若总结有所失误,还请见谅,并欢迎及时指出. 文件.异常和模块 1.1 文件的读写 1.1.1 文件的打开 文件的打开通用格式 w ...

  4. Python基础+数据科学入门(三)组合数据类型

    声明:该博客参考深度之眼的视频课程,如有侵权请联系小编删除博文,谢谢! 若总结有所失误,还请见谅,并欢迎及时指出. 组合数据类型 1.1 列表 1.1.1 列表的表达 列表类型:内部元素有位置关系,能 ...

  5. Python基础+数据科学入门(六)类

    声明:该博客参考深度之眼的视频课程,如有侵权请联系小编删除博文,谢谢! 若总结有所失误,还请见谅,并欢迎及时指出. 类-面向对象编程 #创建类 class Cat(): #初始化属性def __ini ...

  6. 使用Python进行数据科学入门

    数据科学是计算领域一个令人兴奋的新领域,它围绕分析,可视化,关联和解释我们的计算机收集的有关世界的无限信息而建立. 当然,称其为"新"领域有点不屑一顾,因为该学科是统计,数据分析和 ...

  7. usagestatsmanager获取正在运行应用_用Python构建数据科学Web应用程序

    在本文中,我将向你展示如何使用streamlit python库快速构建一个简单的数据驱动web应用程序,只需几行代码. 作为一名数据科学家或机器学习工程师,能够部署我们的数据科学项目是很重要的.传统 ...

  8. python 搭建web应用程序_用Python构建数据科学Web应用程序

    作者|Chanin Nantasenamat 编译|VK 来源|Towards Data Science 在本文中,我将向你展示如何使用streamlit python库快速构建一个简单的数据驱动we ...

  9. python loadtxt_Python 数据科学入门2:Matplotlib

    第七章 从文件加载数据 很多时候,我们想要绘制文件中的数据. 有许多类型的文件,以及许多方法,你可以使用它们从文件中提取数据来图形化. 在这里,我们将展示几种方法. 首先,我们将使用内置的csv模块加 ...

  10. Python 数据科学入门教程:机器学习:回归

    Python 数据科学入门教程:机器学习:回归 原文:Regression - Intro and Data 译者:飞龙 协议:CC BY-NC-SA 4.0 引言和数据 欢迎阅读 Python 机器 ...

最新文章

  1. Android Studio2.2.3 使用教程-入门篇
  2. vrml场景实例代码_高并发的中断下半部tasklet实例解析
  3. 面向Java应用的快速Web服务支持工具 - Netrifex
  4. opencv书籍调研
  5. .NET 6新特性试用 | DateOnly和TimeOnly类型
  6. 从图(Graph)到图卷积(Graph Convolution):漫谈图神经网络 (二)
  7. mysql数据库表字段使用DESC等关键字报错及解决方法
  8. VC++对话框里新添加的控件运行时不显示
  9. anaconda怎么切换目录_Anaconda更改工作路径
  10. SATA、mSATA 、PCIe和M.2——SSD硬盘的接口详解
  11. python读取163邮件内容_python 3.x 163邮箱登陆,邮件读取
  12. NiFi用户指南文档分析(2)
  13. 【VUE】实现自动滚动
  14. 简谈Oracle体系结构
  15. 锂电池电量百分比计算_锂电池充放电理论及电量计算方法详解
  16. 禁用linux系统日志,清除linux系统日志,禁用linux系统日志,删除linux日志
  17. Java实现 对ip白名单的限制
  18. IT审计第三方服务--金 融 机 构
  19. 盘点2013:21款最优秀的开源数据库
  20. OSSEC功能进阶学习——OSSEC+ELK联动

热门文章

  1. 内卷到底是什么意思?
  2. 史上最全介绍--新能源汽车整车控制器VCU开发流程功能概述
  3. 今夜,只我一人听雨声
  4. P1527,JZOJ 2908【集训队互测 2012】矩阵乘法(mat)
  5. 计算机系军训横幅,军训横幅标语有创意精选100句
  6. PayPal如何提现人民币?PayPal提现到国内银行的最新教程!
  7. 视频编解码发展历程(从AVC到HEVC再到VVC)(二)
  8. 国产操作系统之中兴新支点NewStartOS安装
  9. 深入理解Java枚举类型(enum)
  10. 将Excel数据批量生成条形码