Python入门到进阶——流程控制(python入门代码)(python入门代码步骤)

2022-09-24 0 1,238

Python入门到进阶——流程控制(python入门代码)(python入门代码步骤)

已经进行了四天的Python学习体验。到目前为止,已经能够涵盖 Python 的一些基本语法以及数据类型,以及如何使用内置函数和方法以及一些最佳实践对它们执行操作。这可能是 Python 的枯燥部分。今天短期目标是理解逻辑和条件编程,以及在 Python 中使用循环重复任务。这可是很有意思的!

流程控制

流程控制指的是代码运行逻辑、分支走向、循环控制,是真正体现我们程序执行顺序的操作。流程控制一般分为顺序执行、条件判断和循环控制。这里面体现了一种传统编程中的“因果关系”,也就是有什么样的因就产生什么样的果,有什么输入就会有相应的输出,同一个输入不管执行多少次必然得到同样的输出,所有的都是确定的、可控的。与之相对的则是最近火得一塌糊涂的人工智能,比如机器学习、神经网络和深度学习,这些不再是“因果关系”编程,而是“统计关系”编程,同一个输入每次的执行结果有可能不一样。

流程图

再简要介绍一下流程图。程序流程图和伪代码在本质上其实是一样的,只不过一个用文字表达一个用图片表达,图片画着费点事,但看着直观,文字书写方便,但不够直观。

在程序流程图绘制过程中,主要使用下图中的图标:

Python入门到进阶——流程控制(python入门代码)(python入门代码步骤)

通过带方向的箭头和相应的说明文字,连接各图标,形成了流程图,例子如下:

Python入门到进阶——流程控制(python入门代码)(python入门代码步骤)

顺序执行

虽然我们有各种流程判断、循环、跳转、控制、中断等等,但从根本上程序还是逐行顺序执行的。

Python代码在执行过程中,遵循下面的基本原则:

  • 普通语句,直接执行;
  • 碰到函数,将函数体载入内存,并不直接执行
  • 碰到类,执行类内部的普通语句,但是类的方法只载入,不执行
  • 碰到if、for等控制语句,按相应控制流程执行
  • 碰到@,break,continue等,按规定语法执行
  • 碰到函数、方法调用等,转而执行函数内部代码,执行完毕继续执行原有顺序代码

if __name__ == '__main__':

很多时候,我们经常在python程序中看到这么一行语句,这里简要解释一下:

首先,​ ​__name__​ ​​是所有模块都会有的一个内置属性,一个模块的​ ​__name__​ ​​值取决于你如何调用模块。假如你有一个​ ​test.py​ ​​文件,如果在​ ​a.py​ ​​文件中使用import导入这个模块​ ​import test.py​ ​​,那么​ ​test.py​ ​​模块的​ ​__name__​ ​​属性的值就是​ ​test​ ​​,不带路径或者文件扩展名。但是很多时候,模块或者说脚本会像一个标准的程序样直接运行,也就是类似​ ​python test.py​ ​​这种方式,在这种情况下, ​ ​__name__​ ​​ 的值将是一个特别缺省值​ ​"__main__"​ ​。

根据上面的特性,可以用​ ​if __name__ == '__main__'​ ​来判断是否是在直接运行该py文件!如果是,那么if代码块下的语句就会被执行,如果不是,就不执行。该方法常用于对模块进行测试和调试,区分直接运行和被导入两种情况的不同执行方式!

条件判断

条件判断是通过一条或多条判断语句的执行结果(True或者False)来决定执行的代码块。

在Python语法中,使用if、elif和else三个关键字来进行条件判断。

Python入门到进阶——流程控制(python入门代码)(python入门代码步骤)

age = input('Please enter your age')
if(int(age) >= 18):
  print('You are allowed to enter the club')
else:
  print('Sorry! you are not allowed!')

上面是Python中if-else条件语句的示例。它用于根据某些条件执行逻辑。如果未满足条件,则执行else块中的代码。来自JavaScript领域,我注意到的区别是if-else块周围没有花括号,而是在条件语句后使用​ ​:​ ​。条件语句中的块也 缩进 。

exam_score = input('Enter your exam score')
if(int(exam_score) > 90):
  print('You have got grade A+')
elif(int(exam_score) > 80):
  print('You have got grade A')
else:
  print('You have got grade B')

如果需要执行多个条件,则使用​ ​elif​ ​​块。在包括JavaScript在内的许多其他编程语言中,它被称为​ ​else if​ ​​块。可以有任意数量的​ ​else if​ ​块来检查不同的条件。Python使其更加紧凑。

is_adult = True
is_licensed = True

if(is_adult and is_licensed): ## In JavaScript && is used instead of 'and'
  print('You are allowed to drive')
else:
  print('You are not allowed to drive')

上面的代码检查单个表达式中的两个条件以执行块。​ ​and​ ​​关键字用于检查两个条件的计算结果是否都为​ ​True​ ​,然后仅执行块。这个语法很容易理解!Python无疑更具可读性。

条件判断的使用原则:

  • 每个条件后面要使用冒号(:)作为判断行的结尾,表示接下来是满足条件(结果为True)后要执行的语句块。
  • 除了if分支必须有,elif和else分支都可以根据情况省略。
  • 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
  • 顺序判断每一个分支,任何一个分支首先被命中并执行,则其后面的所有分支被忽略,直接跳过!
  • 在Python中没有switch – case语句 。

缩进

缩进是使用空格/制表符分隔代码行的方法,以便解释器可以区分代码块并相应地执行代码。与JavaScript不同,Python不使用任何大括号,而是使用缩进来大块代码。代码编辑器通过自动缩进使我们的生活变得轻松(比如Pycharm或者VS)。

if(10 > 8):
  print('Such a silly logic. I will get printed')
else:
  print('I will never get printed')
  print('I am not get printed coz I am indented')

# Now without indentation
if(10 > 8):
  print('Such a silly logic. I will get printed')
else:
  print('I will never get printed')
print('I will be printed anyways coz I am not indented')
# The above line gets printed always as interpreter treats it as a new line

真假

  • 计算为 true 的值称为 
  • 计算为 false 的值称为 

检查条件时,使用类型转换将条件内的表达式计算为布尔值。现在所有值都被认为是“真实的”,除了以下是“虚假的”:

  • ​ ​None​ ​
  • ​ ​False​ ​
  • ​ ​0​ ​
  • ​ ​0.0​ ​
  • ​ ​0j​ ​
  • ​ ​Decimal(0)​ ​
  • ​ ​Fraction(0, 1)​ ​
  • ​ ​[]​ ​​- 一个空的​ ​list​ ​
  • ​ ​{}​ ​​- 一个空的​ ​dict​ ​
  • ​ ​()​ ​​- 一个空的​ ​tuple​ ​
  • ​ ​''​ ​​- 一个空的​ ​str​ ​
  • ​ ​b''​ ​​- 一个空的​ ​bytes​ ​
  • ​ ​set()​ ​​- 一个空的​ ​set​ ​
  • 一个空的​ ​range​ ​​,像​ ​range(0)​ ​
  • 对象
  • ​ ​obj.__bool__()​ ​​返回​ ​False​ ​
  • ​ ​obj.__len__()​ ​​返回​ ​0​ ​
username = 'santa' # bool('santa') => True
passwor = 'superSecretPassword' # bool('superSecretPassword') => True
if username and password:
  print('Details found')
else:
  print('Not found')

短路

在单个语句中检查多个逻辑条件时,解释器足够聪明,可以在第一个条件失败时忽略其余的条件检查。这被称为短路。可以用一个例子更好地解释:

knows_javascript = True
knows_python = True

if(knows_javascript or knows_python): # doesn't depend on value of knows_python
  print('Javscript or python developer')
else:
  print('Some other developer')
knows_javascript = False
knows_python = True

if(knows_javascript and knows_python): # doesn't depend on value of knows_python
  print('Javscript or python developer')
else:
  print('Some other developer')

​ ​or​ ​​是python中的一个条件运算符。

运算符

Python语言支持以下类型的运算符:

  • 算术运算符
  • 比较(关系)运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算符
  • 成员运算符
  • 身份运算符
  • 三目运算符

算术运算符

以下假设变量: a=10,b=20:

Python入门到进阶——流程控制(python入门代码)(python入门代码步骤)

比较运算符

以下假设变量a为10,变量b为20:

Python入门到进阶——流程控制(python入门代码)(python入门代码步骤)

赋值运算符

以下假设变量a为10,变量b为20:

注意对于 ​ ​a /= b​ ​​ 之类的操作,等同于​ ​a = a / b​ ​​, 而不是 ​ ​a = b / a​ ​,方向一定不要搞反了。

Python入门到进阶——流程控制(python入门代码)(python入门代码步骤)

位运算符

按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下: 下表中变量 a 为 60,b 为 13:

Python入门到进阶——流程控制(python入门代码)(python入门代码步骤)

逻辑运算符

Python语言支持逻辑运算符,但是没有其它语言中的​ ​&&​ ​​和​ ​||​ ​​语法,取而代之的是更加人性化的英文单词​ ​and or not​ ​​(全部都是小写字母)。除了 ​ ​and​ ​​和​ ​or​ ​​之外,Python 中几乎没有逻辑运算符,例如​ ​not​ ​​, ​ ​>​ ​​, ​ ​<​ ​​, ​ ​==​ ​​, ​ ​>=​ ​​, ​ ​<=​ ​​,​ ​!=​ ​。

以下假设变量 a 为 10, b为 20:

Python入门到进阶——流程控制(python入门代码)(python入门代码步骤)

print(10 > 100) # False
print(10 < 100) # True
print(10 == 10) # True
print(10 != 50) # True
print(2 > 1 and 2 > 0) # True
print(not(True)) # False
print(not False) # True

一些奇怪的操作

print(True == True) #True
print('' == 1) # False
print([] == 1) # False
print(10 == 10.0) # True
print([] == []) # True

​ ​==​ ​检查双方的值。如果它们不相同,它会转换类型。

Python 有一个严格的检查运算符​ ​is​ ​​,它检查值及其内存位置。它几乎类似于​JavaScript 中的​ ​===​ ​运算符。

print(True is True) # True
print('' is 1) # False
print([] is 1) # False
print(10 is 10.0) # False
print([] is []) # False

成员运算符

​ ​in 与 not in​ ​是Python独有的运算符(全部都是小写字母),用于判断对象是否某个集合的元素之一,非常好用,并且运行速度很快。返回的结果是布尔值类型的True或者False。

Python入门到进阶——流程控制(python入门代码)(python入门代码步骤)

身份运算符

这也是Python的特色语法(全部都是小写字母)。

Python入门到进阶——流程控制(python入门代码)(python入门代码步骤)

三元运算符

在研究Python中三元运算符的语法时,起初我觉得有点混乱,但后来发现与我在JavaScript世界中熟悉的运算符相比,它很容易阅读。

is_single = True
message = 'You can date' if is_single else 'you cannot date'
# result = (value 1) if (condition is truthy) else (value 2)
print(message) # You can date

三元运算符有时也称为 条件表达式 。这是在单个语句中检查条件的一种非常方便的方法。我将它与JavaScript 的​ ​?​ ​运算符语法进行了比较,以便于更好的理解。

运算符优先级

下表列出了从最高到最低优先级的所有运算符。优先级高的运算符优先计算或处理,同级别的按从左往右的顺序计算(赋值运算符除外,它是按从右往左的顺序)

Python入门到进阶——流程控制(python入门代码)(python入门代码步骤)

总结

这就是今天的全部内容。覆盖了流程控制中的顺序结构和条件判断模块,明天我们将学习循环模块,可能还会加入一点函数的基础知识。又度过了美好的一天,朝着学习 Python 的目标又迈出了一小步。希望你喜欢这个系列并从中获得一些价值。如果对你有点点帮助,可以点个关注和收藏,感谢你的支持,谢谢!

:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可, 转载请附上原文出处链接。
1、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务!
2、本站提供的模板、软件工具等其他资源,均不包含技术服务,请大家谅解!
3、本站提供的资源仅供下载者参考学习,请勿用于任何商业用途,请24小时内删除!
4、如需商用,请购买正版,由于未及时购买正版发生的侵权行为,与本站无关。
5、本站部分资源存放于百度网盘或其他网盘中,请提前注册好百度网盘账号,下载安装百度网盘客户端或其他网盘客户端进行下载;
6、本站部分资源文件是经压缩后的,请下载后安装解压软件,推荐使用WinRAR和7-Zip解压软件。
7、如果本站提供的资源侵犯到了您的权益,请邮件联系: 442469558@qq.com 进行处理!

猪小侠源码-最新源码下载平台 Python教程 Python入门到进阶——流程控制(python入门代码)(python入门代码步骤) https://www.20zxx.cn/418478/xuexijiaocheng/python.html

猪小侠源码,优质资源分享网

常见问题
  • 本站所有资源版权均属于原作者所有,均只能用于参考学习,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,建议提前注册好百度网盘账号,使用百度网盘客户端下载
查看详情

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务